Shell腳本中獲取命令運(yùn)行結(jié)果的實(shí)現(xiàn)
前言
寫shell腳本的時候,常需要將一個命令的運(yùn)行結(jié)果做為參數(shù)傳遞給另外一個命令,除了我們熟知的管道 | 和args,我們也可以通過獲取命令的運(yùn)行結(jié)果。
1、通過反引號`command`來完成
result=date echo $result result=`date` echo $result
執(zhí)行結(jié)果:
來點(diǎn)復(fù)雜的應(yīng)用:
//部署服務(wù)的時候發(fā)現(xiàn)不用的舊鏡像很多,清理一下 i=0 while ((i<10)) do docker rmi -f `docker images|grep -i gateway|tail -n 1|awk '{print $3}'` let i++ done //核心`docker images|grep -i gateway|tail -n 1|awk '{print $3}'` //反引號獲取命令運(yùn)行結(jié)果,即最末尾的鏡像的id
再比如:
//重啟pending的所有pod kubectl delete pod `kubectl get po -A|awk '/pending/{print $2}'` -n namespace
2、使用$(command)來獲取
result=date echo $result result=$(date) echo $result
運(yùn)行結(jié)果:
把反引號``換成$()即可
3、二者的區(qū)別
反引號不支持嵌套,而 $ 支持嵌套。 舉個例子,當(dāng)然實(shí)際開發(fā)中沒有人去ls $(pwd)
//這里有$()的嵌套,輸出正確 echo $(ls $(pwd))
//這里換做反引號就出問題 //結(jié)果輸出了三部分:ls的內(nèi)容、pwd字符串、空 echo `ls `pwd``
到此這篇關(guān)于Shell腳本中獲取命令運(yùn)行結(jié)果的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Shell獲取命令運(yùn)行結(jié)果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache使用 .htaccess 來實(shí)現(xiàn)強(qiáng)制https訪問的方法
下面小編就為大家?guī)硪黄狝pache使用 .htaccess 來實(shí)現(xiàn)強(qiáng)制https訪問的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03Bash Shell腳本學(xué)習(xí)小結(jié)
今天需要寫一個Shell腳本。很簡單,判斷一個日志文件是否大大于2G,如果大于2G則刪除。久了沒有寫bash,竟然一點(diǎn)都想不起來寫了。于是復(fù)習(xí)了一下,下面對今天的學(xué)習(xí)做個小結(jié)2013-01-01Linux中的service命令與systemctl命令有何區(qū)別
在Linux中,service?和?systemctl?是兩個至關(guān)重要且極其相似的命令,它們?nèi)绱讼嗨?,以至于人們很容易想知道它們之間有何不同,是否可以互換使用,下面我們就來看看之前的區(qū)別到底有哪些吧2023-08-08Shell之function函數(shù)的定義及調(diào)用示例
本文主要介紹了Shell之function函數(shù)的定義及調(diào)用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08