Linux中的&&連接符
和其它語言類似,在Shell中,&&
是一個邏輯運算符,表示邏輯AND,用于連接多個條件表達式
不同的是,在Linux系統中,&&
不僅可以連接條件表達式,而且還能連接命令、變量等,使得代碼更簡潔,程序控制邏輯更靈活,錯誤處理更高效
1、&&
連接符
&&
連接符的使用格式如下:
條件1/變量1/命令1 && 條件2/變量2/命令2 && ...
&&
連接符的執行邏輯:
- 從左到右依次執行,并對是否執行成功進行邏輯AND判斷
- 如果前面的命令執行成功(返回狀態碼0),則繼續執行下一個命令
- 如果前面的命令執行失敗(返回狀態碼非0),則后面的命令不會執行
也就是說,只有當前一條命令執行成功后,才會執行下一條命令
例如連接多個命令:
mkdir /tmp/test && cd /tmp/test && echo "test"
當mkdir
失敗(例如權限不足),則后面的cd
和echo
都不會執行
例如連接變量和命令:
file="/tmp/test/x.xlsx" && key="`</tmp/conf/key.txt`" && java -jar test.jar $file $key
如果file
存在并且key
可以讀取到內容,則執行后面的命令
2、||
連接符
||
連接符則相反,前面的命令執行成功,則后面的命令不會執行,只有當前一條命令執行失敗時,才會執行下一條命令
&&
與||
結合使用,可以實現更靈活的邏輯,以下是一個示例:
mkdir /tmp/test && echo "Succeed" || echo "Failed"
如果mkdir
成功,則輸出Succeed,如果mkdir
失敗,則輸出Failed