本篇內(nèi)容均摘自《Linux命令行與shell腳本編程大全》瘾带,個(gè)人認(rèn)為需要重點(diǎn)學(xué)習(xí)的章節(jié)串慰。【免費(fèi)】Linux命令行與Shell腳本編程大全 第3版 PDF全本 21MB 百度網(wǎng)盤下載 - 今夕是何夕 - 博客園
if-then語(yǔ)句允許你使用布爾邏輯來(lái)組合測(cè)試厚满。有兩種布爾運(yùn)算符可用:
[ condition1 ] && [ condition2 ]
[ condition1 ] || [ condition2 ]
第一種布爾運(yùn)算使用AND布爾運(yùn)算符來(lái)組合兩個(gè)條件夺谁。要讓then部分的命令執(zhí)行,兩個(gè)條件都必須滿足青抛。第二種布爾運(yùn)算使用OR布爾運(yùn)算符來(lái)組合兩個(gè)條件旗闽。如果任意條件為TRUE, then部分的命令就會(huì)執(zhí)行蜜另。
$ cat test22.sh
#!/bin/bash
if [ -d $HOME ] && [ -w $HOME/testing ]
then
echo "The file exists and you can write to it"
else
echo "I cannot write to the file"
fi
$ ./test22.sh
I cannot write to the file
$ touch $HOME/testing
$ ./test22.sh
The file exists and you can write to it
使用AND布爾運(yùn)算符時(shí)适室,兩個(gè)比較都必須滿足。第一個(gè)比較會(huì)檢查用戶的$HOME目錄是否存在举瑰。第二個(gè)比較會(huì)檢查在用戶的HOME目錄是否有個(gè)叫testing的文件捣辆,以及用戶是否有該文件的寫入權(quán)限。如果兩個(gè)比較中的一個(gè)失敗了此迅, if語(yǔ)句就會(huì)失敗汽畴, shell就會(huì)執(zhí)行else部分的命令。如果兩個(gè)比較都通過(guò)了耸序,則if語(yǔ)句通過(guò)忍些, shell會(huì)執(zhí)行then部分的命令。