1.按照檔案型別進行判斷
測試選項
作用-b 檔案
判斷該檔案是否存在,並且是否為塊裝置檔案(是塊裝置檔案為真)
-c 檔案
判斷該檔案是否存在,並且是否為字元裝置檔案(是字元裝置檔案為真)
-d 檔案
判斷該檔案是否存在,並且是否為目錄(是目錄為真)
-e 檔案
判斷該檔案是否存在(存在為真)
-f 檔案
判斷該檔案是否存在,並且是否為普通檔案(是普通檔案為真)
-l 檔案
判斷該檔案是否存在,並且是否為符號鏈結檔案(是符號鏈結檔案為真)
-p 檔案
判斷該檔案是否存在,並且是否為管道檔案(是管道檔案為真)
-s 檔案
判斷該檔案是否存在,並且是否為非空(非空為真)
-s 檔案
判斷該檔案是否存在,並且是否是套接字檔案(是套接字檔案為真)
兩種判斷格式
test -s /etc/passwd
[-s /etc/passwd]
這兩種格式沒有輸出,可以使用 echo $? 檢視上條命令是否執行正確
[ -d /root] && echo yes || echo no ("[" 和"-d" 中間有空格)
判斷/root 是否是目錄,是目錄輸出yes,否則輸出no
2.按照檔案許可權進行判斷
測試選項
作用-r 檔案
判斷檔案是否存在,並且擁有讀許可權(有讀許可權為真,只要有r就返回真)
-w 檔案
判斷檔案是否存在,並且擁有寫許可權(有寫許可權為真,同上)
-x 檔案
判斷檔案是否存在,並且擁有執行許可權(有執行許可權為真,同上)
-u 檔案
判斷檔案是否存在,並且擁有suid許可權(有suid許可權為真)
-g 檔案
判斷檔案是否存在,並且擁有sgid許可權(有sgid許可權為真)
-k 檔案
判斷檔案是否存在,並且擁有sbit許可權(有sbit許可權為真)
3.兩個檔案之間比較
測試選項
作用檔案1 -nt 檔案2
檔案1的修改時間是否比檔案2新(如果新返回真)
檔案1 -ot 檔案2
檔案1的修改時間是否比檔案2舊(如果舊返回真)
檔案1 -ef 檔案2
判斷兩個檔案的inode號是否一樣,可以理解為是否為同乙個檔案,判斷硬鏈結是個很好的方法
ln /etc/passwd /tmp/pwd
[ /etc/passwd -ef /tmp/pwd ] && echo yes || echo no
4.兩個整數之間的比較
測試選項
作用整數1 -eq 整數2
判斷整數1是否和整數2相等(相等為真)
整數1 -ne 整數2
判斷整數1是否和整數2不相等(不相等為真)
整數1 -gt 整數2
判斷整數1是否大於整數2(大於為真)
整數1 -lt 整數2
判斷整數1是否小於整數2(小於為真)
整數1 -ge 整數2
判斷整數1是否大於等於整數2(大於等於為真)
整數1 -le 整數2
判斷整數1是否小於等於整數2(小於等於為真)
5.字串的判斷
測試選項
作用-z 字串
判斷字串是否為空(為空返回真)
-n 字串
判斷字串是否為非空(非空返回真)
字串1 == 字串2
判斷字串1是否和字串2相等(相等返回真)
字串1 != 字串2
判斷字串1是否和字串2不相等(不相等返回真)
name=zhangsan
[ -z "$name" ] && echo yes || echo no
aa=abc
bb=abc
[ "$aa" == "$bb" ] && echo yes || echo no
[ "$aa" == abc ] && echo yes || echo no
6.多重條件判斷
測試選項
作用判斷1 -a 判斷2
邏輯與,判斷1和判斷2都成立,最終結果才為真
判斷1 -o 判斷2
邏輯或,判斷1和判斷2只要乙個成立,結果就為真
! 判斷
邏輯非,是原始的判斷取反( ! 與判斷之間有空格)
aa=23
[ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
linux 條件判斷
1 case 語句 語法 case 變數 in 值1 程式 值2 程式 程式 在case語句中,以case開頭以esac結尾 每個分支程式中以雙分號結尾,表示程式結束 程式中的 表示其他所有值 2 if語句 語法 if 條件判斷式1 then 程式elif 條件判斷式2 then 程式else 程式...
Linux條件判斷
條件測試型別 整數測試 字元測試 檔案測試 條件測試的表示式 expression expression test expression整數比較 eq 測試兩個整數是否相等 比如 a eq b ne 測試兩個整數是否不等 不等,為真 相等,為假 gt 測試乙個數是否大於另乙個數 大於,為真 否則,為...
python之條件判斷
if 語句在執行時,會先對條件表示式進行求值判斷 如果為true,則執行if 後的語句 如果為false 則不執行 a 10b 20if a print 123 塊 print 123 塊 print 123 塊 123123 123if 條件表示式 塊else 塊 只有乙個廁所,男的可以進入,女的...