linux之let用法
1、shell字符串连接的操作
[[email protected] sysroot]# var=1; var=$var+1;echo $var
1+1
2、在shell中可以使用let来指示下面是算术表达式,let表达式内变量可不用加$
[[email protected] sysroot]# var=3; let "var=$var+1";echo $var
4
[[email protected] sysroot]# var=4; let "var=var+1";echo $var
5
[[email protected] sysroot]# var=5; let "var+=1";echo $var
6 #let必须是完整的算术表达式,即有等号两边
3、这其中的let可以用(())代替,let
″j=i*6+2″等价于((j=i*6+2)), 就像很多的循环中用法一样
[[email protected] sysroot]# var=7; ((var++)); echo $var
8
[[email protected] sysroot]# var=8; var=$[$var+1]; echo $var
9
[[email protected] sysroot]# var=9; var=`expr $var+1`; echo $var #加号旁无空格时为字符串连接
9+1 # ` `不是单引号,是命令替换符,“1”左边的那个键
[[email protected] sysroot]# var=9; var=`expr $var + 1`; echo $var #加号旁无空格为算术运算
10
[[email protected] sysroot]# var=9; var=$(expr $var + 1); echo $var #在shell 中$( ) 与 ` `等效
10
[[email protected] sysroot]# var=9; var=$(( $var + 1)); echo $var
10
[[email protected] sysroot]# var=9; echo $(( $var + 1))
10
#(())、expr
可以只有等号右边的计算,由$((...))、$(expr ...)、`expr ...` 查看返回结果
4、处理浮点数的bc
[[email protected] sysroot]# var=20; var=`echo "scale=1; $var*3.5" | bc `; echo $var
70.0
5、支持浮点运算的方法是awk
[[email protected] sysroot]# var=30; var=`echo "$var 3" | awk ‘{printf("%g",$1+$2)}‘ `;echo $var
33
[[email protected] sysroot]# c=$(awk ‘BEGIN{print 11.111*5-0.4 }‘); echo $c
55.155
1:在shell 中$() 与 ``等效。执行中间包含的命令语句,返回执行结果。2:从效率来说let==(()) > expr > bc。let和(())运行是内建命令,使用相同的算法。3:let 和 expr 的运算是整数运算,不包括浮点预算。4:expr和bc是外部程序,expr的体积几乎等于bc的1/3,执行一次装入内存所消耗的时间更少。5:从运算能力来说,bc排第一位。
---end---