[ -z $1 ] && echo "ERROR:不得為空值" && exit 99
# ==為等於(若一個=是指定) 如果$1等於/則成立
[ $1 == "/" ] && echo "ERROR:不能為根目錄" && exit 99
# 檢查 $fn 是否為數字
s=$(echo $fn | tr -d 0-9)
# -n為判斷是否有內容 若$s有內容則成立 [ -n "$s" ] && echo "$1 不是數字" && exit 1 #用回傳值判斷 ~/aaa 目錄存不存在 $ test -e ./aaa | echo $? 1 (1 代表不存在 $ mkdir bin $ test -e ./aaa | echo $? 0 (0 代表存在
test -e ./aaa && echo "true" || echo "false" &&=and
||=or
-z 無內容的條件才成立$ [ -z $HOME ] ; echo $? 1 (因為有內容不成立 所以回傳為1
-n 有內容的條件才成立$ [ -n $HOME ] ; echo $? 0 (因為有內容 成立 所以回傳為0
-e 判斷目錄存不存在$ [ -e ./aaa ] ; echo $? 0 (因為存在所以回傳值為0 例1.檢查kernel是否為2.6版
cks=$(uname -r) (將完整版本代號丟到cks變數中) ck=${cks:0:3} (將版本代號作處理,從0開始取3個字)
#判斷ck取出來的字是否為2.6 , 若成立顯示is2.6 不成立 顯示not 2.6 [ $ck == "2.6" ] && echo is 2.6 || echo not 2.6 例2.檢查是否為root帳號執行程式 (若不是root就跳出,可以給程式執行權限)w=$(whoami) (將操作使用者名稱丟到變數w中 #判斷變數w是否為root 分別輸出結果及指定傳回值 [ $w == "root" ] && echo root ok! && exit 0 || echo not root && exit 1
沒有留言:
張貼留言