測試和比較語句用於if或指令碼命令中:
if condition
then
commands
else if conditon
then
commandsfi或
[ condition ] && command; #如果condition為真則執行command
[ condition ] || command; #如果condition為假則執行command
算數比較:
[ $var1 -eq 0 -a $var2 -ne 0 ] #當var為0且var2不為0時返回真,-a代表and,-o代表or,中括號內部兩端需加空格
以上中括號可用test代替:
test $var1 -eq 0 #可以用-a連線兩個判斷,&&不行
其他操作符如下:
操作符含義
-gt大於
-lt小於
-ge大於等於
-le小於等於
[student@myhost ~]$ cat a
if [ -f /home/student/a ]
then
echo x
fi[student@myhost ~]$ bash a
x
操作符
含義-f
所給變數是否為檔名或檔案路徑
-x檔案是否可執行
-d是否是目錄
-e檔案是否存在
-c是否是乙個字元裝置檔案
-b是否是乙個塊裝置檔案
-w檔案是否可寫
-r檔案是否可讀
-l檔案是否是乙個符號鏈結
字串的比較:
進行字串比較時最好使用雙中括號:
操作符含義
[[ $str1 = $str2 ]] (等號兩端有空格,無空格為賦值語句)或[[ $str1 == $str2 ]]
兩端是否相同
[[ $str1 != $str2 ]]
兩端是否不同
[[ $str1 > $str2 ]]
比較字母序
[[ -z $str ]]
空返回真
[[ -n $str ]]
非空返回真
組合判斷:
[[ -z $str ]] && [[ -n $str ]]
或[[ -z $str && -n $str ]]
linux檔案測試語句
1 linux系統中檔案測試語句用於判斷檔案是否存在 是檔案或者目錄 或者許可權判斷 linux系統中 echo 用於判斷上一句是否成功執行,成功返回0,不成功返回其他數字,簡單示例 root linuxprobe test ls root linuxprobe test mkdir test 成功...
linux系統中整數值比較語句
1 eq 表示等於 root linuxprobe test 3 eq 4 root linuxprobe test echo 1 root linuxprobe test 3 eq 3 root linuxprobe test echo 0 注 linux系統中的整數比較不能有小數 root li...
Shell 測試比較
檔案狀態測試 b filename 當filename 存在並且是塊檔案時返回真 返回0 c filename 當filename 存在並且是字元檔案時返回真 d pathname 當pathname 存在並且是乙個目錄時返回真 e pathname 當由pathname 指定的檔案或目錄存在時返回...