前言
寫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é)果:
把反引號``換成$()即可文章來源:http://www.zghlxwxcb.cn/news/detail-672423.html
3、二者的區(qū)別
反引號不支持嵌套,而 $ 支持嵌套。 舉個例子,當(dāng)然實(shí)際開發(fā)中沒有人去ls $(pwd)文章來源地址http://www.zghlxwxcb.cn/news/detail-672423.html
//這里有$()的嵌套,輸出正確
echo $(ls $(pwd))
//這里換做反引號就出問題
//結(jié)果輸出了三部分:ls的內(nèi)容、pwd字符串、空
echo `ls `pwd``
到了這里,關(guān)于【Linux】Shell腳本中獲取命令運(yùn)行的結(jié)果的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!