shell脚本之浮点数和整数计算】的更多相关文章

整数计算 直接使用放括号计算即可,省去*号需要使用转义符的麻烦 #!/bin/bash num1= num2= var1=$[ $num1 * $num2 ] echo "$var1" 浮点数计算 浮点数的计算借助bc命令来实现,scale指定保留多少位小数,计算结果整数位如果是0则不会显示 #!/bin/bash num1= num2= var1=`echo "scale=3;$nmb1 / $nmb2"|bc` echo "$var1"…
本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让你失望了,这样输出的结果是1+1.为什么呢?这是因为在shell script中变量类型默认为“字符串”,所以若不指定变量类型,1+1是一个“字符串”而不是“计算式”.那么怎么得到我们想要的结果呢?方法很多,但是总结起来就是两种,一种就是生命变量的类型.另一种是对特定的计算式进行处理. 1)首先看第…
在执行shell时一直出现“integer expression expected”,找了很久也没发现那个地方出错.翻了笔记发现-le并不错啊,甚至还怀疑零是不是整数还特意上网搜了下 -_- . 最后发现是因为在变量前没有加上$符,才会疯狂报错.报错的时候显示在第6行看了好久,并没发现问题所在,在第9行时发现少了个$,难道是系统坏了?经过实验发现,它并不是从“#!/bin/bash”这开始计的而是从脚本正文开始算行数,果然细节决定成败啊!…
在bash中可利用let,(())和[]执行基本的操作,高级操作将会使用expr和bc 运算符:+,—,*,/,**(幂) (()) [root@Director ~]# ((c=2**3-9%2));echo $c 7 [root@Director ~]# c=$((2**3-9%2));echo $c #c放在外面则需要加$7 [root@Director ~]# if ((2>1));then echo ok;fiok [root@Director ~]# a=5 [root@Direct…
前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下面我们先来看一个反面的例子: #!bin/bash echo 2+8 a=23 b=$a+55 echo $b b=90 c=$a+$b echo $c 运行脚本: $ ./tesh.sh 2+8 23+55 从上面的运算结果可以看出,默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 有时候需要计算命令的执行时间长度,可以使用time命令,虽然time命令可以精确到毫秒级,但time命令无法计算一堆命令的执行时间.可以直接使用date命令计算命令执行前后的时间差,但直接使用date命令计算时间差只能精确到秒级.因此,要计算毫秒级或者微秒级的时间长度,需要对date命令的结果进行一番计算转换. 本文只给出了毫秒级时间差的计算方法,若要计算微秒级时间差…
今天有一个朋友忽然问我在shell中,如何比较浮点数和整数,倒是把我问的一愣,在工作中确实没有遇到这个场景.我们也知道,在shell中数字的计算通常都会转换成整数,比如说1.1和1会被认为是一样的.这么一来,我们就不能直接通过gt或者lt等方式来进行比较.虽然没遇到过,但我们也知道,这个比较肯定也不会很难.简单的记录下以作备用. 下面是一个常规写法的示例: ];then echo "OK" fi 直接会抛出如下异常: line : [: 1.1: integer expression…
在shell脚本中计算一般会涉及到let.$(()).$[].bc(另扩展expr).其中let.$(()).$[]都是用来做基本整数运算,bc可以用来做浮点运算. (1).let.$(()).$[] 因为这三个基本等价,所以放在一起说明. 首先来看下let命令 [xf@xuexi ~]$ num=10 [xf@xuexi ~]$ echo $num 10 [xf@xuexi ~]$ let num=$num+6;echo $num 16 [xf@xuexi ~]$ let num=num-6;…
问题:设计一个Shell脚本:求命令行上所有整数和 Shell代码: 调用add.sh脚本结果:…
shell脚本中的整数测试 author:headsen chen      2017-10-17   13:58:12 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,test用法:test   表达式(注意:只能用 gt,lt,le,ge,le,单括号中也是这种用法,不能用大小符号) [root@linux-node1 a]# x=5;y=10 [root@linux-node1 a]# test $x -gt $y [root@linux-node1 a]# echo $? 1…