一、if的基本語法:
if [ command ];then
符合該條件執行的語句
elif [ command ];then
符合該條件執行的語句
else
符合該條件執行的語句
fi
二、檔案/資料夾(目錄)判斷
[ -b file ] 如果 file 存在且是乙個塊特殊檔案則為真。
[ -c file ] 如果 file 存在且是乙個字特殊檔案則為真。
[ -d dir ] 如果 file 存在且是乙個目錄則為真。
[ -e file ] 如果 file 存在則為真。
[ -f file ] 如果 file 存在且是乙個普通檔案則為真。
[ -g file ] 如果 file 存在且已經設定了sgid則為真。
[ -k file ] 如果 file 存在且已經設定了粘制位則為真。
[ -p file ] 如果 file 存在且是乙個名字管道(f如果o)則為真。
[ -r file ] 如果 file 存在且是可讀的則為真。
[ -s file ] 如果 file 存在且大小不為0則為真。
[ -t fd ] 如果檔案描述符 fd 開啟且指向乙個終端則為真。
[ -u file ] 如果 file 存在且設定了suid (set user id)則為真。
[ -w file ] 如果 file存在且是可寫的則為真。
[ -x file ] 如果 file 存在且是可執行的則為真。
[ -o file ] 如果 file 存在且屬有效使用者id則為真。
[ -g file ] 如果 file 存在且屬有效使用者組則為真。
[ -l file ] 如果 file 存在且是乙個符號連線則為真。
[ -n file ] 如果 file 存在 and has been mod如果ied since it was last read則為真。
[ -s file ] 如果 file 存在且是乙個套接字則為真。
[ file1 -nt file2 ] 如果 file1 has been changed more recently than file2, or 如果 file1 exists and file2 does not則為真。
[ file1 -ot file2 ] 如果 file1 比 file2 要老, 或者 file2 存在且 file1 不存在則為真。
[ file1 -ef file2 ] 如果 file1 和 file2 指向相同的裝置和節點號則為真。
三、字串判斷
[ -z string ] 如果string的長度為零則為真 ,即判斷是否為空,空即是真;
[ -n string ] 如果string的長度非零則為真 ,即判斷是否為非空,非空即是真;
[ string1 = string2 ] 如果兩個字串相同則為真 ;
[ string1 != string2 ] 如果字串不相同則為真 ;
[ string1 ] 如果字串不為空則為真,與-n類似
四、數值判斷
int1 -eq int2 int1和int2兩數相等為真 ,=
int1 -ne int2 int1和int2兩數不等為真 ,<>
int1 -gt int2 int1大於int1為真 ,>
int1 -ge int2 int1大於等於int2為真,>=
int1 -lt int2 int1小於int2為真 ,<
int1 -le int2 int1小於等於int2為真,<=
五、複雜邏輯判斷
-a 與
-o 或
! 非exp1: 如果a>b且a
if (( a > b )) && (( a < c ))
或者if [[ $a > $b ]] && [[ $a < $c ]]
或者if [ $a -gt $b -a $a -lt $c ]
exp2:如果a>b或a
if (( a > b )) || (( a < c ))
或者if [[ $a > $b ]] || [[ $a < $c ]]
或者if [ $a -gt $b -o $a -lt $c ]
"||"和"&&"在shell裡可以用,也就是第乙個寫成if [ a>b && a
shell if判斷條件
a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...
Shell if常用判斷條件
if 判斷 之前也寫過簡單的shell指令碼,也不是轉職運維,和系統相關的工作比較少,所以不怎麼熟練。最近由於系統總是出現各種亂七八糟的問題,也沒有人來協助,只好自己寫shell指令碼了,都是些基礎的指令碼,但由於shell的語法和通常的高階語言有些不一樣,所以還是要系統的看下常用的部分。if語句就...
shell if命令 判斷條件整理
語法結構 一行 if 1x ip x then echo abc fi 多行 if 1x ab x then echo you had enter ab elif 1x cd x then echo you had enter cd else echo you had enter unexpecte...