linux學習(十)Shell中的控制語句

@(Shell中的控制語句)

1. 條件測試語句

測試語句十Shell的特有功能,Shell提供了一組測試運算符,通過這些運算符,Shell程序能夠判斷某個或者某幾個條件是否成立。
在Shell中用戶可以使用測試語句來測試指定條件表達式的條件的真和假。當指定條件爲真,條件測試的返回值爲0;反之,條件測試的返回值爲非0值。條件測試的語法有兩種,分別是test命令和[]命令

1.1 test語句

test expression

其中,參數expression表示需要進行測試的語句,整個test語句爲真,test返回0,若爲假,則返回非0

==筆者強烈推薦test語句,[]語句十分糟糕,要求十分嚴格,會出現各式各樣的錯誤,不利於初學者學習==

1.2[]語句

[expression]

其中,參數expression的語句與test命令中語法完全相同。條件表達式和左右方括號之間都必須有一個空格

1.3文件測試

文件測試指的是根據給出的路徑,判斷當前路徑下的文件屬性及類型。

test op file
[ op file ]
環境變量 說明
-a 若文件存在,則條件測試返回結果爲0
-b 若文件存在,且爲塊文件,則條件測試返回結果爲0
-c 若文件存在,且爲字符文件,則條件測試返回結果爲0
-d 若文件存在,且爲目錄文件,則條件測試返回結果爲0
-e 若文件,則條件測試返回爲0
-f 若文件存在,且爲常規文件,則條件測試返回結果爲0
-r 若文件存在且可讀,則條件測試返回結果爲0
-w 若文件存在且可寫,則條件測試返回結果爲0
-x 若文件存在且可執行,則條件測試返回結果爲0
-p 若文件存在且是FIFO文件,則條件測試返回結果爲0
-s 若文件存在且不是空文件,則條件測試返回結果爲0

1.4字符串測試

test 操作符 
操作符 說明
str 判斷指定字符串是否爲空
str1==str2 若字符串相等就爲0
-n str 判斷字符串是否爲非空串,若爲空串則測試結果爲0
-z str 若爲空串,則測試結果爲0

1.5數值測試

與字符串類似,數值測試也有兩種形式的語法

test number1 op number2

或者

[ number1 op number2 ]
操作符 說明
n1 -eq n2 比較n1是否等於n2,如果等於,則測試結果爲0
n1 -ne n2 若n1不等於n2,則測試結果爲0
n1 -lt n2 比較n1是否小於n2,n1如果小於n2,測試結果爲0
n1 -le n2 比較n1是否小於等於n2,n1如果小於等於n2,測試結果爲0
n1 -gt n2 比較n1是否大於n2,n1如果大於n2,測試結果爲0
n1 -ge n2 比較n1是否大於等於n2,n1如果大於等於n2,測試結果爲0

1.5邏輯操作符

邏輯操作符相當於c語言中的&&、||、!
|操作符|說明|
|:---:|:---:|
|!exp|邏輯非,條件表達式爲假,則該操作符的運算結果爲真
|exp1 -a exp2|邏輯與,條件exp1和exp2的值都爲真時,整個表達式爲真
|exp1 -o exp2|邏輯或,條件表達式exp1和exp2的值有一個爲真,整個表達式爲真
|(exp)|圓括號,將表達式分組,優先得到結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章