Linux下Shell腳本中幾種基本命令的替換區(qū)別
Part 1 : ` command `
這是 “命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入” 操作方法之一,有很大的弊端以及不安全的地方。
缺點(diǎn)一:比較陳舊。
缺點(diǎn)二:容易與單引號(hào)混淆。(其實(shí)它是你鍵盤(pán)“!”左邊那個(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í)有效的!
他們支持多層嵌套,對(duì)運(yùn)維工作有不可言語(yǔ)的巨大作用。
Part 2 : $(command)
這是 “命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入” 操作方法之二,使用這種方法的人也最多!
這種方法的優(yōu)點(diǎn)是:以$(command)
形式可以互相嵌套多個(gè)命令擴(kuò)展。
Part 3 : ${command}
那具體是什么意思呢?簡(jiǎn)而言之,將變量函數(shù)$()
進(jìn)行替換以\${}
輸出
嗯...意思是到了但是還不正確。。但是我們現(xiàn)在知道倆點(diǎn)關(guān)于${}
了
第一點(diǎn):$()
是用來(lái)運(yùn)行命令的,不是用來(lái)運(yùn)行替換變量的。簡(jiǎn)而言之,\$()
就是用來(lái)執(zhí)行命令,其他干不了
第二點(diǎn):${}
是用來(lái)替換變量的。但是它不能給你執(zhí)行變量替換,僅僅能幫\$()
信息讀出來(lái)。
第三點(diǎn):echo ${#name}
可以統(tǒng)計(jì)替換變量長(zhǎng)度單位。
結(jié)論:$()
用來(lái)執(zhí)行;\${}
用來(lái)變量替換,但不能執(zhí)行。
Part 4 : $(){command}
關(guān)于這點(diǎn),這里就不細(xì)說(shuō)了。
結(jié)論:$(){command}
定義了個(gè)方法名叫\(zhòng)$,這個(gè)方法執(zhí)行了command
命令
最后結(jié)文:
` command``
與 $(command)
倆者無(wú)區(qū)別,都是執(zhí)行命令?!懊顦?biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入”
\${command}
與 $(){command}
倆者類(lèi)似。前者用來(lái)讀取變量替換內(nèi)容,但不能執(zhí)行。
唔...加一點(diǎn)話(huà)。群里的朋友給我提供了一份RHCE的官方手冊(cè),上面對(duì)“命令標(biāo)準(zhǔn)輸出作為函數(shù)標(biāo)準(zhǔn)輸入”有一個(gè)簡(jiǎn)單的解釋?zhuān)矗好钐鎿Q。
命令替換允許命令的輸出替換命令本身。當(dāng)命令包含前導(dǎo)美元符號(hào)和括號(hào)$(command)
或者反引號(hào) command
時(shí),就會(huì)發(fā)生命令替換。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
Linux?Shell如何用ssh命令統(tǒng)計(jì)分布式集群信息詳解
作為命令的ssh,作用就是在一臺(tái)linux機(jī)器上去登錄到另一臺(tái)linux機(jī)器,下面這篇文章主要給大家介紹了關(guān)于Linux?Shell如何用ssh命令統(tǒng)計(jì)分布式集群信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Linux下使用expect命令編寫(xiě)自動(dòng)化交互腳本
今天小編就為大家分享一篇關(guān)于Linux下使用expect命令編寫(xiě)自動(dòng)化交互腳本,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11Linux命令每天必學(xué)之 useradd/adduser 新增用戶(hù)
Linux下useradd或adduser命令用來(lái)建立用戶(hù)帳號(hào)和創(chuàng)建用戶(hù)的起始目錄,使用權(quán)限是超級(jí)用戶(hù)。接下來(lái)通過(guò)本文給大家介紹每天必學(xué)Linux命令之 useradd/adduser 新增用戶(hù)的相關(guān)知識(shí),需要的朋友參考下吧2018-10-10shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別詳解
我們都知道bash?shell?腳本的方法有多種,下面這篇文章主要給大家介紹了關(guān)于shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07使用shell腳本找出網(wǎng)站的空頁(yè)面和404錯(cuò)誤頁(yè)面
這篇文章主要介紹了使用shell腳本找出網(wǎng)站的空頁(yè)面和404錯(cuò)誤頁(yè)面,本文使用一句話(huà)實(shí)現(xiàn),需要的朋友可以參考下2014-11-11