說明$?: ?$?為上一次命令的執行返回值,若上一次命令正常執行,則返回0;若執行出錯,則返回一個非0的隨機數。比如創建一個已經存在的目錄,則返回一個非0數。 ?另外,測試語句成立返回0,否則返回非0隨機數。
[ 條件表達式 ] 兩側必須有空格
1.文件測試語句???-d 是否為目錄文件 ?-e 文件是否存在 ?-f 是否為一般文件 -r 當前用戶是否有權限讀 ? ?-w ?寫 ? ?-x 執行 ? ? # [ -d /etc/fstab ] ? # echo $? ?顯示為非0數
2.邏輯測試語句 ? && 表示前面命令執行成功后才執行后面命令 ?||表示前面不成功才執行后面 ? =判斷是否相等 ? ? ?!把判斷結果取相反值 ? ?如對于root用戶:# [ $USER = luciusvorenus ] || echo "error" ?顯示為error ? ?# [ ! $USER = luciusvorenus ] && echo "error" ?也顯示為 error? ? ?# [ ! $USER = root ] && echo "true" || echo "error" ?也顯示為 error ?
3.整數值比較語句 ?整數比較運算符僅是對數字的操作,不能將數字與字符串、文件等內容一起操作。 -eq 是否等于 ?-ne 是否不等于 ?-gt 是否大于 ?-lt是否小于 ?-le是否小于等于 -ge是否大于等于 # [ 10 -gt 10 ]? ? ? #echo $?
4.字符串比較語句 ? ?= 字符串內容是否相同 ?!= 字符串內容是否不同 ? -z 字符串內容是否為空(即變量是否未被定義,未被定義就為空) ? # [ -z $String ] ?//判斷字符串String是否為空(是否未被定義為變量) ? #echo $? ? ?# [ $LANG = "en.US" ] ? # echo $?
?