2020-09-19 if

[ -a FILE ] 如果 FILE 存在則為真。

[ -b FILE ] 如果 FILE 存在且是一個(gè)塊特殊文件則為真。

[ -c FILE ] 如果 FILE 存在且是一個(gè)字特殊文件則為真。

[ -d FILE ] 如果 FILE 存在且是一個(gè)目錄則為真。

[ -e FILE ] 如果 FILE 存在則為真。

[ -f FILE ] 如果 FILE 存在且是一個(gè)普通文件則為真。

[ -g FILE ] 如果 FILE 存在且已經(jīng)設(shè)置了SGID則為真。

[ -h FILE ] 如果 FILE 存在且是一個(gè)符號連接則為真。

[ -k FILE ] 如果 FILE 存在且已經(jīng)設(shè)置了粘制位則為真。

[ -p FILE ] 如果 FILE 存在且是一個(gè)名字管道(F如果O)則為真。

[ -r FILE ] 如果 FILE 存在且是可讀的則為真。

[ -s FILE ] 如果 FILE 存在且大小不為0則為真。

[ -t FD ] 如果文件描述符 FD 打開且指向一個(gè)終端則為真。

[ -u FILE ] 如果 FILE 存在且設(shè)置了SUID (set user ID)則為真。

[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。

[ -x FILE ] 如果 FILE 存在且是可執(zhí)行的則為真。

[ -O FILE ] 如果 FILE 存在且屬有效用戶ID則為真。

[ -G FILE ] 如果 FILE 存在且屬有效用戶組則為真。

[ -L FILE ] 如果 FILE 存在且是一個(gè)符號連接則為真。

[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。

[ -S FILE ] 如果 FILE 存在且是一個(gè)套接字則為真。

[ 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 指向相同的設(shè)備和節(jié)點(diǎn)號則為真。

[ -o OPTIONNAME ] 如果 shell選項(xiàng) “OPTIONNAME” 開啟則為真。

[ -z STRING ] “STRING” 的長度為零則為真。

[ -n STRING ] or [ STRING ] “STRING” 的長度為非零 non-zero則為真。

[ STRING1 == STRING2 ] 如果2個(gè)字符串相同。 “=” 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, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.


bash中如何實(shí)現(xiàn)條件判斷

-條件測試類型

-整數(shù)測試

-字符測試

-文件測試

條件測試的表達(dá)式

[ expression ] 括號兩端必須要有空格

[[ expression ]] 括號兩端必須要有空格

test expression

組合測試條件:

-a  : and

-o  : or

?!   : not

整數(shù)比較

-eq 測試兩個(gè)整數(shù)是否相等

-ne 測試兩個(gè)整數(shù)是否不等

-gt 測試一個(gè)數(shù)是否大于另一個(gè)數(shù)

-lt 測試一個(gè)數(shù)是否小于另一個(gè)數(shù)

-ge 大于或等于

-le 小于或等于

命令間的邏輯關(guān)系,?邏輯與:&& ,?邏輯或:||


字符串比較

== 等于 兩邊要有空格

!= 不等

> 大于

< 小于


文件測試

-z string 測試指定字符是否為空,空著真,非空為假

-n string 測試指定字符串是否為不空,空為假 非空為真

-e FILE 測試文件是否存在

-f file 測試文件是否為普通文件

-d file 測試指定路徑是否為目錄

-r file 測試文件對當(dāng)前用戶是否可讀

-w file 測試文件對當(dāng)前用戶是否可寫

-x file 測試文件對當(dāng)前用戶是都可執(zhí)行

-z 是否為空 為空則為真

-a 是否不空

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容