+ - * / %
使用 $((...)) 或 let 進行算術運算。
| 操作符 | 含義 | 用法示例 |
|---|---|---|
-eq | 等於 | [ $a -eq $b ] |
-ne | 不等於 | [ $a -ne $b ] |
-gt | 大於 | [ $a -gt $b ] |
-lt | 小於 | [ $a -lt $b ] |
-ge | 大於等於 | [ $a -ge $b ] |
-le | 小於等於 | [ $a -le $b ] |
邏輯組合:-a (AND)、-o (OR);雙括號內可用 && ||。
| 操作符 | 含義 |
|---|---|
-d | 目錄 |
-f | 普通文件 |
-s | 文件大小 > 0 |
-r | 可讀 |
-w | 可寫 |
-x | 可執行 |
-L | 符號鏈接 |
-b | 塊設備 |
-u | SUID 位設置 |
示例:[ -w tmp.txt ] && echo "可寫"
| 操作符 | 含義 |
|---|---|
= | 相等 |
!= | 不相等 |
-z | 空串 |
-n | 非空串 |
示例:VAR1='abc'; VAR2='123'; [ "$VAR1" = "$VAR2" ]; echo $? → 1
| 語法 | 適用場景 | 示例結果 |
|---|---|---|
[ ... ] | POSIX 標準,字符串比較、文件測試 | [ 2 -gt 10 ] → true (錯誤! 字符串比較) |
[[ ... ]] | Bash/Ksh 擴展,支持模式匹配、字符串比較正確 | [[ 2 -gt 10 ]] → false (正確) |
(( ... )) | 純算術評估,支持 C 風格運算符 | (( 2 > 10 )) → false (正確) |
(( ... ));[[ ... ]];[ ... ] 並注意數值用 -eq/-gt 等。