Linux下Shell腳本中幾種基本命令的替換區(qū)別
Part 1 : ` command `
這是 “命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入” 操作方法之一,有很大的弊端以及不安全的地方。
缺點(diǎn)一:比較陳舊。
缺點(diǎn)二:容易與單引號混淆。(其實(shí)它是你鍵盤“!”左邊那個(gè)鍵)
Part 1.5 ` command``與 $(command) 倆者區(qū)別
直接看幾張圖吧,看這圖解釋他們區(qū)別...

大家可以看到倆種表達(dá)方式,分別是代表命令直接執(zhí)行和嵌套執(zhí)行。
我們發(fā)現(xiàn):執(zhí)行`` 和 $() 是相同的。

附,其實(shí)這里有個(gè)小bug...( 橙色框框 ):即你怎么知道嵌套執(zhí)行計(jì)算機(jī)是真的鑲嵌執(zhí)行的呢?
所以我又截圖一張...可以看到直接執(zhí)行的情況下計(jì)算機(jī)確實(shí)是按照從左到右這樣執(zhí)行的。
所以得出證明,嵌套執(zhí)行計(jì)算機(jī)是真的鑲嵌執(zhí)行,我們操作是確實(shí)有效的!
他們支持多層嵌套,對運(yùn)維工作有不可言語的巨大作用。
Part 2 : $(command)
這是 “命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入” 操作方法之二,使用這種方法的人也最多!
這種方法的優(yōu)點(diǎn)是:以$(command)形式可以互相嵌套多個(gè)命令擴(kuò)展。
Part 3 : ${command}

那具體是什么意思呢?簡而言之,將變量函數(shù)$()進(jìn)行替換以\${}輸出

嗯...意思是到了但是還不正確。。但是我們現(xiàn)在知道倆點(diǎn)關(guān)于${}了
第一點(diǎn):$() 是用來運(yùn)行命令的,不是用來運(yùn)行替換變量的。簡而言之,\$()就是用來執(zhí)行命令,其他干不了
第二點(diǎn):${} 是用來替換變量的。但是它不能給你執(zhí)行變量替換,僅僅能幫\$()信息讀出來。
第三點(diǎn):echo ${#name} 可以統(tǒng)計(jì)替換變量長度單位。

結(jié)論:$()用來執(zhí)行;\${}用來變量替換,但不能執(zhí)行。
Part 4 : $(){command}
關(guān)于這點(diǎn),這里就不細(xì)說了。

結(jié)論:$(){command}定義了個(gè)方法名叫\(zhòng)$,這個(gè)方法執(zhí)行了command命令
最后結(jié)文:
` command``與 $(command) 倆者無區(qū)別,都是執(zhí)行命令?!懊顦?biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入”
\${command} 與 $(){command} 倆者類似。前者用來讀取變量替換內(nèi)容,但不能執(zhí)行。
唔...加一點(diǎn)話。群里的朋友給我提供了一份RHCE的官方手冊,上面對“命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入”有一個(gè)簡單的解釋,即:命令替換。
命令替換允許命令的輸出替換命令本身。當(dāng)命令包含前導(dǎo)美元符號和括號$(command)或者反引號 command時(shí),就會發(fā)生命令替換。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用
這篇文章主要介紹了Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
使用shell腳本實(shí)現(xiàn)ping對應(yīng)IP所對應(yīng)的人名(推薦)
這篇文章主要介紹了使用shell腳本實(shí)現(xiàn)ping對應(yīng)IP所對應(yīng)的人名的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
Linux Shell腳本syntax error: unexpected en
這篇文章主要介紹了Linux Shell腳本syntax error: unexpected end of file原因及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Linux中多命令執(zhí)行'';''和''&&''的區(qū)別解釋
大家有沒有發(fā)現(xiàn)在 Linux 中經(jīng)常使用到一個(gè)命令,如 make && make install,這里也可以使用 make ; make install,那么在 Linux 中執(zhí)行命令 ; 和 && 有何區(qū)別?下面通過這篇文章來給大家詳細(xì)的介紹下面,有需要的朋友們可以參考借鑒。2016-12-12

