linux命令之let、expr
shell程序中的操作默認都是字符串操作,在運行數學運算符的時候可能得到意想不到的答案:
var=1
var=$var+1
echo $var
將輸出 1+1
從這個例子中可以看出shell字符串連接的操作
let 命令
let 命令是 BASH 中用於計算的工具,用於執行一個或多個表達式,變量計算中不需要加上 $ 來表示變量。
運算符間不能有空格,如果表達式中包含了空格或其他特殊字符,則必須引起來。
var=1
let "var+=1" # 或 let var+=1 這種寫法運算符間不能有空格
echo $var
output:
2
let可以用(())代替,let ″j=i*6+2″等價於((j=i*6+2))
expr命令
將需要運算的表達式寫入在expr 后面,保證參數與運算符號中間有空格隔開。
var=1
var=`expr $var + 1` #如果沒有空格,即var=`expr $var+1` 則輸出為1+1
echo $var
output:
2
下面為一個具體的例子:
[root@localhost ~]# cat let.sh #!/bin/bash a=4 b=5 let c=a+b echo $c let "f = b + c" echo $f ((d=a+c)) echo $d e=`expr $a + $d` echo $e [root@localhost ~]# bash let.sh 9 14 13 17