Shell 和其他編程語言一樣,支持多種運(yùn)算符,包括:
原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算,但是可以通過其他命令來實(shí)現(xiàn),例如 awk 和 expr,expr 最常用。
expr 是一款表達(dá)式計(jì)算工具,使用它能完成表達(dá)式的求值操作。
例如,兩個(gè)數(shù)相加(注意使用的是反引號(hào) ` 而不是單引號(hào) '):
#!/bin/bash val=`expr 2 + 2` echo "兩數(shù)之和為 : $val"
運(yùn)行實(shí)例 »
執(zhí)行腳本,輸出結(jié)果如下所示:
兩數(shù)之和為 : 4
兩點(diǎn)注意:
下表列出了常用的算術(shù)運(yùn)算符,假定變量 a 為 10,變量 b 為 20:
運(yùn)算符 | 說明 | 舉例 |
---|---|---|
+ | 加法 | `expr $a + $b` 結(jié)果為 30。 |
- | 減法 | `expr $a - $b` 結(jié)果為 -10。 |
* | 乘法 | `expr $a \* $b` 結(jié)果為 200。 |
/ | 除法 | `expr $b / $a` 結(jié)果為 2。 |
% | 取余 | `expr $b % $a` 結(jié)果為 0。 |
= | 賦值 | a=$b 將把變量 b 的值賦給 a。 |
== | 相等。用于比較兩個(gè)數(shù)字,相同則返回 true。 | [ $a == $b ] 返回 false。 |
!= | 不相等。用于比較兩個(gè)數(shù)字,不相同則返回 true。 | [ $a != $b ] 返回 true。 |
注意:條件表達(dá)式要放在方括號(hào)之間,并且要有空格,例如: [$a==$b] 是錯(cuò)誤的,必須寫成 [ $a == $b ]。
算術(shù)運(yùn)算符實(shí)例如下:
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" if [ $a == $b ] then echo "a 等于 b" fi if [ $a != $b ] then echo "a 不等于 b" fi
執(zhí)行腳本,輸出結(jié)果如下所示:
a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a 不等于 b
注意:
- 乘號(hào)(*)前邊必須加反斜杠(\)才能實(shí)現(xiàn)乘法運(yùn)算;
- if...then...fi 是條件語句,后續(xù)將會(huì)講解。
- 在 MAC 中 shell 的 expr 語法是:$((表達(dá)式)),此處表達(dá)式中的 "*" 不需要轉(zhuǎn)義符號(hào) "\" 。
全國職稱計(jì)算機(jī)考試速成過關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 | |
全國職稱計(jì)算機(jī)考試速成過關(guān)系列套裝:W .. 定價(jià):¥124 優(yōu)惠價(jià):¥124.0 更多書籍 |