1. 算術運算子
原生bash不支援簡單的數**算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。expr 是一款表示式計算工具,使用它能完成表示式的求值操作。
val=`expr 2 + 2`
l 使用的是反引號 ` 而不是單引號 '
l 表示式和運算子之間要有空格
l 條件表示式要放在方括號之間,並且要有空格,例如: [$a==$b] 是錯誤的,必須寫成 [ $a == $b ]。
l 乘號(*)前邊必須加反斜槓(\)才能實現乘法運算;
+ 加法 `expr $a + $b` 結果為 30。
- 減法 `expr $a - $b` 結果為 10。
* 乘法 `expr $a \* $b` 結果為 200。
/ 除法 `expr $b / $a` 結果為 2。
% 取餘 `expr $b % $a` 結果為 0。
= 賦值 a=$b 將把變數 b 的值賦給 a。
== 相等。用於比較兩個數字,相同則返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用於比較兩個數字,不相同則返回 true。 [ $a != $b ] 返回 true。
1. 關係運算子
關係運算子只支援數字,不支援字串,除非字串的值是數字。
-eq
檢測兩個數是否相等,相等返回
true。
[ $a -eq $b ]
返回false。
-ne
檢測兩個數是否相等,不相等返回
true。
[ $a -ne $b ]
返回true。
-gt
檢測左邊的數是否大於右邊的,如果是,則返回
true。
[ $a -gt $b ]
返回false。
-lt
檢測左邊的數是否小於右邊的,如果是,則返回
true。
[ $a -lt $b ]
返回true。
-ge
檢測左邊的數是否大等於右邊的,如果是,則返回
true。
[ $a -ge $b ]
返回false。
-le
檢測左邊的數是否小於等於右邊的,如果是,則返回
true。
[ $a -le $b ]
返回true。
2. 布林運算子!
假定變數 a 為 10,變數 b 為 20:
[ ! false ]
返回true。
-o 假定變數 a 為 10,變數 b 為 20:
[ $a -lt 20 -o $b -gt 100 ]
返回true。
-a 假定變數 a 為 10,變數 b 為 20:
[ $a -lt 20 -a $b -gt 100 ]
返回false。
3. 邏輯運算子
假定變數 a 為 10,變數 b 為 20:&&
邏輯的and
[[ $a -lt 100 && $b -gt 100 ]]
返回false ||
邏輯的or
[[ $a -lt 100 || $b -gt 100 ]]
返回true
4. 字串運算子
假定變數 a 為 "abc",變數 b 為 "efg"=
檢測兩個字串是否相等,相等返回
true。
[ $a = $b ]
返回false。
!= 檢測兩個字串是否相等,不相等返回
true。
[ $a != $b ]
返回true。
-z 檢測字串長度是否為0,為
0返回true。
[ -z $a ]
返回false。
-n 檢測字串長度是否為
0,不為0返回
true。
[ -n $a ]
返回true。
str
檢測字串是否為空,不為空返回
true。
[ $a ]
返回true。
5. 檔案測試運算子
-b file
檢測檔案是否是塊裝置檔案,如果是,則返回
true。
[ -b $file ]
返回false。
-c file
檢測檔案是否是字元裝置檔案,如果是,則返回
true。
[ -c $file ]
返回false。
-d file
檢測檔案是否是目錄,如果是,則返回
true。
[ -d $file ]
返回false。
-f file
檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回
true。
[ -f $file ]
返回true。
-g file
檢測檔案是否設定了
sgid
位,如果是,則返回
true。
[ -g $file ]
返回false。
-k file
檢測檔案是否設定了粘著位
(sticky bit)
,如果是,則返回
true。
[ -k $file ]
返回false。
-p file
檢測檔案是否是具名管道,如果是,則返回
true。
[ -p $file ]
返回false。
-u file
檢測檔案是否設定了
suid
位,如果是,則返回
true。
[ -u $file ]
返回false。
-r file
檢測檔案是否可讀,如果是,則返回
true。
[ -r $file ]
返回true。
-w file
檢測檔案是否可寫,如果是,則返回
true。
[ -w $file ]
返回true。
-x file
檢測檔案是否可執行,如果是,則返回
true。
[ -x $file ]
返回true。
-s file
檢測檔案是否為空(檔案大小是否大於
0),不為空返回
true。
[ -s $file ]
返回true。
-e file
檢測檔案(包括目錄)是否存在,如果是,則返回
true。
[ -e $file ]
返回true。
運算子和表示式
運算子 1.算術運算子 定義 int i 2 1 i i 是在 使用完畢之後 2 i i 是在 之後使用 3 i i 是 3 3 是形成運算子的 4 函式是從右邊開始傳參,其中,為結束標誌 例子1 func i i i i,i 6,5,4,i,2 i最後是 7 6 5 4 7 2 例子2 i i i...
運算子和表示式
有些運算子需要兩個運算元,使用形式為 運算元 運算子 運算元,這樣的運算子就叫做二元運算子或雙目運算子,只需要乙個運算元的運算子叫做一元運算子或單目運算子。運算子具有優先順序和結合性。如果乙個表示式中有多個運算子則先進行優先順序高的運算,後進行優先順序低的運算。結合性就是指當乙個運算元左邊和右邊的運...
運算子和表示式
分享一下在c語言中運算子和表示式 1.算數運算子和算數表示式 算數 就是我們平時日常生活中的加減乘除等。在c語言中的運算符號分別為如下 加 減 乘 除 取餘 在計算機運算中也是有符號優先順序,先乘除後加減,有括號先算括號裡面的 自左向右 和平時演算法是一樣的。舉例子 2 9 7 2 8 在這個中我們...