Shell指令碼中邏輯與,邏輯或,邏輯非
阿新 • • 發佈:2022-03-25
Shell指令碼中邏輯與,邏輯或,邏輯非
前言
shell語言可以使用和其他程式語言一樣的邏輯與(&&)、邏輯或(||)、邏輯非(!);
如果您式高手的話,並且屬性shell語言中的邏輯判斷的話,那麼可以結合-a(邏輯與),-o(邏輯或),!(邏輯非)來進行邏輯判斷;
1 [ ] 表示式表示邏輯表示式
程式碼樣例
#!/bin/bash name=bulingfeng if [ -n "$name" -a $name == "bulingfeng" ] then echo "name's content is bulingfeng" else echo "name's content is not bulingfeng" fi
注意事項
- if的後面一定要有空格,否則則會報
syntax error in expression
(語法結構表示式異常); - [ ] 中的前後一定要有空格來進行隔開;
檢驗shell語法是否寫的正確(空格是否加對)小技巧
使用vim檢視,如果if等關鍵字的顏色都正常顯示,則說明沒有問題,否則則需要檢查空格,以及其他符號是否編寫正確;
2 (( )) 和邏輯&&,||, ! 配合使用
shell樣例
#!/bin/bash age=28 if (( $age > 20 ))&&(( $age == 28 )) then echo "該年齡符合要求" else ehco "該年齡不符合要求" fi
邏輯
或
者和邏輯非
的用法參考上面即可;
3 [[ ]] 和邏輯&&,||, ! 配合使用
程式碼樣例
#!/bin/bash
age=28
if [[ $age > 20 ]]&&[[ $age == 28 ]]
then
echo "該年齡符合要求"
else
ehco "該年齡不符合要求"
fi
邏輯
或
者和邏輯非
的用法參考上面即可;
4 總結
- (( )) 和 [[ ]] 的用法式一致的,他們都可以使用&&,||,!來進行邏輯判斷;
- (( )) 和 [[ ]] 內部可以使用>,<...等符號進行判斷;
- [ ] 通常內部使用-a,-gt,-n...這些符合進行判斷;並且[ ]的功能要更強大一點;
如果不熟悉shell指令碼中的判斷規則的,那麼建議使用(( )) 和 [[ ]];
如果想結合[ ] 來使用shell內部的判斷條件,可以參考以下文章,來了解檔案內部的判斷: