Shell:运算命令和操作符

let命令:

i1=2  
i2=3
let res=i1+$i2  #‘=’和‘+’前后不能有空格,变量前可以加‘$’符号也可不加。
echo $res  #5
#以下两种情况不常用
let res=1==3; echo $res  #0
let res=1!=3; echo $res  #1

支持自增自减操作:

#下面情况下变量前不能加‘$’符号,操作符前后也不能有空格。
let i1++
let --i2
let i2+=4

$[ ]操作符:

返回其包裹的表达式的运算结果

i1=2
i2=3
res=$[ i1+$i2 ] #变量前可以加‘$’符号也可不加,‘[’后和‘]’前必须要有空格,‘+’前后的空格随意
echo $res  #5

$(())操作符:

同上

res=$(($i1+i2)) #变量前可以加‘$’符号也可不加,空格随意。

expr命令:

#变量前必须加‘$’符号,‘+’前后必须有空格
res=`expr $i2 + 3`  
res=$(expr $i2 + 3)

1、之所以加``$()操作符是因为expr 2 + 3语句的执行后果是打印5,但是这个语句并不返回值5,``$()操作符的作用就是将expr语句的打印结果作为值返回。(详情参考博文:区分有效命令和表达式)
2、expr命令中乘法要用\*符号而不是*符号:expr 4 \* 5


以上都只能进行整数运算。进行浮点数运算可以用bc命令:

i=5.0
echo "$i*2" | bc  # 引号不能省略,变量前必须加‘$’符号,空格随意。
echo "scale=2.0;$i/2" | bc # scale=2.0指定精度,否则会取整
posted @ 2018-12-20 08:59  xuejianbest  阅读(276)  评论(0编辑  收藏  举报