linux 命令系列之 條件判斷(59)

2021-07-02 06:43:15 字數 2263 閱讀 3720

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 塊 只有乙個廁所,男的可以進入,女的...