shell條件判斷

2021-10-22 12:48:02 字數 1797 閱讀 7741

if語句

case 語句

shell會根據上一條命令執行的返回值來判斷真假,返回0值為真,非0值為假

格式一:test 條件表示式

格式二:[ 條件表示式 ]#注意括號裡有空格

格式:[ 操作符 檔案或目錄 ]

-e:測試目錄或檔案是否存在(exist)。

-d:測試是否為目錄(directory)。

-f:測試是否為檔案(file)。

-r:測試當前使用者是否有許可權讀取(read)。

-w:測試當前使用者是否有許可權寫入(write)。

-x:測試是否設定有可執行(excute)許可權。

格式:[ 整數變數1 操作符 整數變數2 ]

-eq:等於					==

-ne:不等於 !=

-gt:大於 \>

-lt:小於 \<

-le:小於等於

-ge:大於等於

[  字串1  =  字串2 ] 或 [  字串1  ==  字串2 ] 

[ 字串1 != 字串2 ]

[ -z 字串 ] #檢查字串是否為空(zero),對於未定義或賦予空值的變數將視為空串

[ -n 字串 ] #檢查是否有字串存在

[ 表示式1 ] 操作符 [ 表示式2 ]

-a或&& :邏輯與,「而且」的意思,前後條件需都成立

-o或|| :邏輯或,「或者」的意思,只需前後條件中乙個成立

! :邏輯否

#&&、||操作符能夠正常存在於[[ ]]條件判斷結構中,但是如果出現在[ ]結構中的話,會報錯-c:傳送包的個數

-i:傳送包的間隔時間

-w:超時時間

-w:多少秒後停止 ping 命令操作

if 條件測試操作

then

命令序列

if 條件測試操作

then

命令序列 1

else

命令序列 2

if 條件測試操作 1

then

命令序列 1

elif 條件測試操作 2

then

命令序列 2

[else]

[命令序列 3]

case 變數值 in

模式 1)

命令序列 1

;;模式 2)

命令序列 2

;;……

*)預設命令序列

Shell條件判斷

b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e file 若檔案存在,則為真 f file 若檔案存在且是乙個規則檔案,則為真 g file 若檔案存在且設定了sgid位的值,則為真 h fi...

Shell 條件判斷

傳統if 從句子 以條件表示式作為 if條件 if 條件表示式 then command command command else command command fi條件表示式 檔案表示式 if f file 如果檔案存在 if d 如果目錄存在 if s file 如果檔案存在且非空 if r ...

Shell條件判斷

1 字串判斷 str1 str2 當兩個串有相同內容 長度時為真 str1 str2 當串str1和str2不等時為真 n str1 當串的長度大於0時為真 串非空 z str1 當串的長度為0時為真 空串 str1 當串str1為非空時為真 2 數字的判斷 int1 eq int2 兩數相等為真 ...