Linux下Shell指令碼中幾種基本命令的替換區別_linux shell

來源:互聯網
上載者:User

Part 1 : ` command `

這是 “命令標準輸出作為函數標準輸入” 操作方法之一,有很大的弊端以及不安全的地方。

缺點一:比較陳舊。

缺點二:容易與單引號混淆。(其實它是你鍵盤“!”左邊那個鍵)

Part 1.5 ` command``與 $(command) 倆者區別

直接看幾張圖吧,看這圖解釋他們區別...

大家可以看到倆種表達方式,分別是代表命令直接執行和嵌套執行。

我們發現:執行`` $() 是相同的。

附,其實這裡有個小bug...( 橙色框框 ):即你怎麼知道嵌套執行電腦是真的鑲嵌執行的呢?

所以我又截圖一張...可以看到直接執行的情況下電腦確實是按照從左至右這樣執行的。

所以得出證明,嵌套執行電腦是真的鑲嵌執行,我們操作是確實有效!

他們支援多層嵌套,對營運工作有不可言語的巨大作用。

Part 2 : $(command)

這是 “命令標準輸出作為函數標準輸入” 操作方法之二,使用這種方法的人也最多!

這種方法的優點是:以$(command)形式可以互相嵌套多個命令擴充。

Part 3 : ${command}

那具體是什麼意思呢?簡而言之,將變數函數$()進行替換以\${}輸出

嗯...意思是到了但是還不正確。。但是我們現在知道倆點關於${}

第一點:$() 是用來運行命令的,不是用來運行替換變數的。簡而言之,\$()就是用來執行命令,其他幹不了

第二點:${} 是用來替換變數的。但是它不能給你執行變數替換,僅僅能幫\$()資訊讀出來。

第三點:echo ${#name} 可以統計替換變數長度單位。

結論:$()用來執行;\${}用來變數替換,但不能執行。

Part 4 : $(){command}

關於這點,這裡就不細說了。

結論:$(){command}定義了個方法名叫\$,這個方法執行了command命令

最後結文:

` command``$(command) 倆者無區別,都是執行命令。“命令標準輸出作為函數標準輸入”

\${command} $(){command} 倆者類似。前者用來讀取變數替換內容,但不能執行。

唔...加一點話。群裡的朋友給我提供了一份RHCE的官方手冊,上面對“命令標準輸出作為函數標準輸入”有一個簡單的解釋,即:命令替換。

命令替換允許命令的輸出替換命令本身。當命令包含前置貨幣符號和括弧$(command)或者反引號 command時,就會發生命令替換。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.