Shell 條件語句

Shell 條件語句


條件語句

shell中的條件語句用[]號括起來,用於if,while,until等結構。

條件判斷用=號,而不是==號。條件語句與[] 號之間要有空格分開。

gender="boy"
if [ "$gender" = "girl" ]
then
      echo 'Welcome!'
else
      echo 'We only welcome girl.'
fi

還有要注意的是條件語句中=號兩旁要有空格分開,否則shell會將條件語句整個作爲一個字符串處理,條件永遠爲真。條件語句中的變量最好用"號引起來,否則如果該變量中有空格,shell就會報too many arguments錯誤。如果變量正好爲空,則會報 =: unary operator expected.錯誤。因爲變量爲空的話,條件語句少了一邊,當然會出錯。所以,將字符串變量用雙引號括起來是shell編程的好習慣,尤其在條件語句中。

其他的比較符號,如 >,<,不能直接在條件語句中使用,因爲>號在shell中有特殊含義。下面是shell的比較運算符號表示方法:

算術比較運算符   

num1 eq num2      等於   [ 3 eq $mynum ]   
num1-ne num2     不等於 [ 3 -ne $mynum ]   
num1-lt num2     小於   [ 3 -lt $mynum ]   
num1-le num2     小於或等於    [ 3 -le $mynum ]   
num1-gt num2     大於   [ 3 -gt $mynum ] 
num1-ge num2     大於或等於    [ 3 -ge $mynum ]  

算術比較運算符num1-eq num2 等於 [ 3 -eq $mynum ]num1-ne num2 不等於 [ 3 -ne $mynum ]num1-lt num2 小於 [ 3 -lt $mynum ]num1-le num2 小於或等於 [ 3 -le $mynum ]num1-gt num2 大於 [ 3 -gt $mynum ]num1-ge num2 大於或等於 [ 3 -ge $mynum ]

字符串比較運算符    

-z string    如果 string長度爲零,則爲真    [ -z "$myvar" ]   
-n string    如果 string長度非零,則爲真    [ -n "$myvar" ]   
string1= string2     如果 string1與 string2相同,則爲真    [ "$myvar" = "one two three" ]   
string1!= string2    如果 string1與 string2不同,則爲真    [ "$myvar" != "one two three" ]  

字符串比較運算符 -z string 如果 string長度爲零,則爲真 [ -z "$myvar" ]-n string 如果 string長度非零,則爲真 [ -n "$myvar" ]string1= string2 如果 string1與 string2相同,則爲真 [ "$myvar" = "one two three" ]string1!= string2 如果 string1與 string2不同,則爲真 [ "$myvar" != "one two three" ]


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