linux之let用法

  1、shell字符串连接的操作

[root@test sysroot]# var=1; var=$var+1;echo $var
1+1


  2、在shell中可以使用let来指示下面是算术表达式,let表达式内变量可不用加$

[root@test sysroot]# var=3; let "var=$var+1";echo $var
4
[root@test sysroot]# var=4; let "var=var+1";echo $var
5

[root@test sysroot]# var=5; let "var+=1";echo $var
6                  #let必须是完整的算术表达式,即有等号两边


  3、这其中的let可以用(())代替,let ″j=i*6+2″等价于((j=i*6+2)), 就像很多的循环中用法一样

[root@test sysroot]# var=7; ((var++));  echo $var

8

[root@test sysroot]# var=8; var=$[$var+1]; echo $var
9

[root@test sysroot]# var=9; var=`expr $var+1`; echo $var   #加号旁无空格时为字符串连接
9+1        # ` `不是单引号,是命令替换符,“1”左边的那个键

 
[root@test sysroot]# var=9; var=`expr $var + 1`; echo $var   #加号旁无空格为算术运算

10

[root@test sysroot]# var=9; var=$(expr $var + 1); echo $var  #在shell 中$( ) ` `等效
10

[root@test sysroot]# var=9; var=$(( $var + 1));  echo $var
10

[root@test sysroot]# var=9; echo $(( $var + 1))
10  #(())、expr 可以只有等号右边的计算,由$((...))、$(expr ...)、`expr ...` 查看返回结果


  4、处理浮点数的bc

[root@test sysroot]# var=20; var=`echo "scale=1; $var*3.5" | bc `;  echo $var
70.0


  5、支持浮点运算的方法是awk

[root@test sysroot]# var=30; var=`echo "$var 3" | awk '{printf("%g",$1+$2)}' `;echo $var
33

[root@test 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---