前提:
通常情況下,我們會在終端輸入一條命令再輸入下一條命令,可是如果我們想要一次性輸入多個命令呢?
學習目錄
- 順序執行多條命令
- 有選擇的執行命令
&&
||
命令及實例
1順序執行多條命令
sudo apt-get update
:更新源
sudo apt-get install [軟件]
:下載具體的軟件
[運行軟件]
:運行具體的軟件
如果想要一次性輸完所有命令,讓他們依次去執行可以用;
來完成。
sudo apt-get update;sudo apt-get install [軟件];[軟件]
2.有選擇的執行命令
學習目錄
&&
||
如果自動執行命令時,前面的命令不能執行,而後面的命令又依賴於上一條命令的結果,那麼就會造成錯誤,這種情況下我們就需要有一個判斷公式來判斷上一條命令執行成功後再執行下一條命令,或者不成功我們又該做出其他的處理。
實例:
which cowsay>/dev/null && coway -f head-in ohch~
程序含義:
whoch cowsay>/dev/null
:查詢cowsay[文件]
是否在目錄/dev/null
中。
&&
:用來實現選擇性執行,如果前面的命令執行狀態的結果返回0(即查詢到)就執行後面,否則就不執行。
cowsay -f head-in ohch~
:cowsay
【牛】在-f head-in
頭部聊天框中顯示ohch~
補充
||
在這裏就是與&&相反的控制效果,當上一條命令執行結果爲≠0($?≠0)時則執行它後面的命令。
如何得知命令執行狀態的返回結果是否爲0或1?
先查詢這個文件
which [文件]
然後可以從&
環境變量中獲取上一次命令的返回結果
echo $?
也可以結合着&&和||來實現一些操作
實例:
which cowsay>/dev/null && echo "exist || echo "not exist"
流程圖
將&&
和||
反過來行不行?
將&&
和||
反過來結果不一樣
which cowsay>/dev/null || echo "exist && echo "not exist"
輸出not exist
exist
兩個都輸出
爲什麼?
which cowsay>/dev/null
的結果不是0,所以||
後面的語句會被執行,而且,||
之後的語句成功執行之後,#?
的值因爲成功執行了||
後面的語句變成了0,所以&&
後面的語句執行了。