Linux?Shell腳本中如何獲取命令運行的結(jié)果
前言
寫shell腳本的時候,常需要將一個命令的運行結(jié)果做為參數(shù)傳遞給另外一個命令,除了我們熟知的管道 | 和args,我們也可以通過獲取命令的運行結(jié)果。
1、通過反引號`command`來完成
result=date echo $result result=`date` echo $result
執(zhí)行結(jié)果:

來點復(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}'`
//反引號獲取命令運行結(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
運行結(jié)果:

把反引號``換成$()即可
3、二者的區(qū)別
反引號不支持嵌套,而 $ 支持嵌套。 舉個例子,當(dāng)然實際開發(fā)中沒有人去ls $(pwd)
//這里有$()的嵌套,輸出正確 echo $(ls $(pwd))
//這里換做反引號就出問題 //結(jié)果輸出了三部分:ls的內(nèi)容、pwd字符串、空 echo `ls `pwd``
總結(jié)
到此這篇關(guān)于Linux Shell腳本中如何獲取命令運行的結(jié)果的文章就介紹到這了,更多相關(guān)Shell腳本獲取命令運行結(jié)果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux下監(jiān)視進(jìn)程 崩潰掛掉后自動重啟的shell腳本
如何保證服務(wù)一直運行?如何保證即使服務(wù)掛掉了也能自動重啟?在寫服務(wù)程序時經(jīng)常會碰到這樣的問題。在Linux系統(tǒng)中,強(qiáng)大的shell就可以很靈活的處理這樣的事務(wù)2013-06-06
centos/rhel下實現(xiàn)nginx自啟動腳本實例
這篇文章主要介紹了centos/rhel下實現(xiàn)nginx自啟動腳本,需要的朋友可以參考下2014-07-07

