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
時,就會發生命令替換。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。