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---

Logo

更多推荐