Linux 基礎入門教程----命令執行順序控制與管道

來源:互聯網
上載者:User

Linux 基礎入門教程----命令執行順序控制與管道
介紹

順序執行、選擇執行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。

一、命令執行順序的控制1.順序執行多條命令

通常情況下,我們每次只能在終端輸入一條命令,按下斷行符號執行,執行完成後,我們再輸入第二條命令,然後再按斷行符號執行…… 你可能會遇到如下使用情境:我需要使用apt-get安裝一個軟體,然後安裝完成後立即運行安裝的軟體(或命令工具),又恰巧你的主機才更換的軟體源還沒有更新軟體列表(比如之前我們的環境中,每次重新開始實驗就得sudo apt-get update,現在已經沒有這個問題了),那麼你可能會有如下一系列操作:

$ sudo apt-get update# 等待——————————然後輸入下面的命令$ sudo apt-get install some-tool# 等待——————————然後輸入下面的命令$ some-tool

這時你可能就會想要是我可以一次性輸入完,讓它自己去一次執行各命令就好了,這就是我們這一小節要解決的問題。

簡單的順序執行你可以使用;來完成,比如上述操作你可以:

$ sudo apt-get update;sudo apt-get install some-tool;some-tool# 讓它自己運行
2.有選擇的執行命令

關於上面的操作,不知你有沒有思考過一個問題,如果我們在讓它自動順序執行命令時,前面的命令執行不成功,而後面的命令又依賴與上一條命令的結果,那麼就會造成花了時間,最終卻得到一個錯誤的結果,而且有時候直觀的看你還無法判斷結果是否正確。那麼我們需要能夠有選擇性的來執行命令,比如上一條命令執行成功才繼續下一條,或者不成功又該做出其它什麼處理,比如我們使用which來尋找是否安裝某個命令,如果找到就執行該命令,否則什麼也不做(雖然這個操作沒有什麼實際意義,但可幫你更好的理解一些概念):

$ which cowsay>/dev/null && cowsay -f head-in ohch~

你如果沒有安裝cowsay,你可以先執行一次上述命令,你會發現什麼也沒發生,你再安裝好之後你再執行一次上述命令,你也會發現一些驚喜。

上面的&&就是用來實現選擇性執行的,它表示如果前面的命令執行結果(不是表示終端輸出的內容,而是表示命令執行狀態的結果)返回0則執行後面的,否則不執行,你可以從$?環境變數擷取上一次命令的返回結果:

學習過 C 語言的使用者應該知道在 C 語言裡面&&表是邏輯與,而且還有一個||表示邏輯或,同樣 Shell 也有一個||,它們的區別就在於,shell中的這兩個符號除了也可用於表示邏輯與和或之外,就是可以實現這裡的命令執行順序的簡單控制。||在這裡就是與&&相反的控制效果,當上一條命令執行結果為≠0($?≠0)時則執行它後面的命令:

$ which cowsay>/dev/null || echo "cowsay has not been install, please run 'sudo apt-get install cowsay' to install"

除了上述基本的使用之外,我們還可以結合這&&||來實現一些操作,比如:

$ which cowsay>/dev/null && echo "exist" || echo "not exist"

我畫個流程圖來解釋一下上面的流程:

思考

上面我們講到將&&||結合起來使用,那麼是否以任意順序都行?比如上面我們是&&在前||在後,反過來可以嗎?會不會有問題?

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.