
linux中的10個連結操作符
本文旨在介紹一些常用的連結操作符,通過簡短的描述和相關的例子幫助讀者提高生産力、降低系統負載、寫出更加簡短有意義的代碼。
‘&’的作用是使指令在背景運作。隻要在指令後面跟上一個空格和 ‘&’。你可以一口氣在背景運作多個指令。
在背景運作一個指令:
同時在背景運作兩個指令:
<a target="_blank"></a>
分号操作符使你可以一口氣運作幾個指令,指令順序執行。
上述指令先後執行了update和upgrade,最後在目前工作目錄下建立了一個‘test’檔案夾
如果第一個指令執行成功,與操作符 (&&)才會執行第二個指令,也就是說,第一個指令退出狀态是0。(譯注:原文的這裡明顯寫錯了,我們進行了改譯,有興趣的讀者可以參看原文以及原文下面的評論。在unix裡面,0表示無錯誤,而所有非0傳回值都是各種錯誤)。這個指令在檢查最後一個指令的執行狀态時很有用。
或操作符 (||)很像程式設計中的else語句。上面的操作符允許你在第一個指令失敗的情況下執行第二個指令,比如,第一個指令的退出狀态是1。
上面的指令中,由于該使用者不允許更新系統,這意味着第一個指令的退出狀态是’1′,是以最後一個指令‘links tecmint.com‘會執行。
如果第一個指令成功執行并且退出狀态是‘0‘呢?很明顯的,第二個指令不會執行。
這裡,使用者在家目錄建立了一個‘test‘檔案夾,這是被允許的。指令成功的執行,退出狀态是‘0‘,是以,最後的指令不會執行。
非操作符 (!)很像except語句。這個指令會執行除了提供的條件外的所有的語句。要了解這點,在你的主目錄建立一個目錄‘tecmint’,并‘cd’到它這裡。
接下來,在檔案夾‘tecmint’下建立不同類型的檔案。
看一下我們在檔案夾‘tecmint’建立的新檔案。
用一種聰明的辦法馬上删除除了 ‘html’之外的所有檔案。
上面的操作符實際上是‘與’和‘或’操作符的組合。它很像‘if-else‘語句。
比如,我們ping tecmint.com,如果成功列印‘已驗證’,否則列印‘主機故障’。
現在,斷開我們現在的網絡連接配接诶,再試一下相同的指令。
pipe在将第一個指令的輸出作為第二個指令的輸入時很有用。比如,‘ls -l’的輸出通過管道到‘less’,并看一下輸出。
合并兩個或多個指令,第二個指令依賴于第一個指令的執行。
比如,檢查一下檔案‘xyz.txt’是否在downloads目錄下,如果不存在則建立之并輸出提示資訊。
但是這樣的指令的運作結果并不如我們預期的運作,會始終都輸出提示資訊。是以需要使用{}操作符來合并指令:
(譯注:原文這裡應該也是複制或書寫的時候,出現了一些問題,例子中并沒有出現小标題中的"{}"操作符,是以這裡我們進行了修改)
這個操作符可以讓指令以優先順序執行。
在上面的僞代碼中,如果command_x1執行失敗了會怎麼樣,command_x2,command_x3, command_x4沒有一個會執行,對于這種情況,我們使用優先操作符。
在上面的僞代碼中,如果command_x1執行失敗,command_x2不會執行,但是command_x3會繼續執行, command_x4會依賴于 command_x3的退出狀态。
連接配接符 ()如它名字所說,被用于連接配接shell中那些太長而需要分成多行的指令。可以在輸入一個“\”之後就回車,然後繼續輸入指令行,直到輸入完成。比如,下面的指令會打開文本檔案test(1).txt。
今天就到這裡,我會近日開始另外一個有趣的文章。不要走開,繼續關注我們。不要忘記在評論欄裡提出有價值的回報。
原文釋出時間為:2014-01-13
本文來自雲栖社群合作夥伴“linux中國”