[ -a file ] 如果 file 存在則為真。
[ -b file ] 如果 file 存在且是乙個塊特殊檔案則為真。
[ -c file ] 如果 file 存在且是乙個字特殊檔案則為真。
[ -d file ] 如果 file 存在且是乙個目錄則為真。
[ -e file ] 如果 file 存在則為真。
[ -f file ] 如果 file 存在且是乙個普通檔案則為真。
[ -g file ] 如果 file 存在且已經設定了sgid則為真。
[ -h file ] 如果 file 存在且是乙個符號連線則為真。
[ -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 如果 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 指向相同的裝置和節點號則為真。
[ -o optionname ] 如果 shell選項 "optionname" 開啟則為真。
[ -z string ] "string" 的長度為零則為真。
[ -n string ] or [ string ] "string" 的長度為非零 non-zero則為真。
[ string1 == string2 ] 如果2個字串相同。 "=" may be used instead of "==" for strict posix compliance則為真。
[ string1 != string2 ] 如果字串不相等則為真。
[ string1 < string2 ] 如果 "string1" sorts before "string2" lexicographically in the current locale則為真。
[ string1 > string2 ] 如果 "string1" sorts after "string2" lexicographically in the current locale則為真。
[ arg1 op arg2 ] "op" is one of -eq, -ne, -lt, -le, -gt or -ge. these arithmetic binary operators return true if "arg1" is equal to, not equal to, less than, less than or equal to, greater than
-e filename 如果 filename 存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename 為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果 filename 為常規檔案,則為真 [ -f /usr/bin/grep ]
-l filename 如果 filename 為符號鏈結,則為真 [ -l /usr/bin/grep ]
-r filename 如果 filename 可讀,則為真 [ -r /var/log/syslog ]
-w filename 如果 filename 可寫,則為真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可執行,則為真 [ -l /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 舊,則為真 [ /boot/bzimage -ot arch/i386/boot/bzimage ]
-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" ]
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 ]
Shell If 條件判斷
一 if的基本語法 if command then 符合該條件執行的語句 elif command then 符合該條件執行的語句 else 符合該條件執行的語句 fi二 檔案 資料夾 目錄 判斷 b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個...
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語句就...