Linux測試比較語句

2021-09-30 18:04:06 字數 1269 閱讀 7386

測試和比較語句用於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 指定的檔案或目錄存在時返回...