將命令標準輸出賦值給變數的時候,如何獲取命令的回傳值呢?
例如:
a=$(command1|command2|command3)
我的目的是能獲取到command1的回傳值,如果回傳值不為0,則exit,如果回傳值為0,則繼續。
百度了很久未果,還請大家不吝賜教,謝謝!
uj5u.com熱心網友回復:
$(command1|command2|command3) 的回傳值是command3的回傳值,如果需要判斷command1的回傳值,可以考慮先單獨執行command1,然后再判斷;
但是這樣就有一個前提:command1的回傳值是可以重復的,意思就是command1無論執行多少次,回傳值是相同的,(也就是說command1是是個查詢,而不是修改,不會改變資源狀態)
if command1 > /dev/null
then
a=$(command1|command2|command3)
echo "$a"
exit 0
else
echo "failed to execute command1"
exit 1
fi
uj5u.com熱心網友回復:
這個方式我考慮過了,看來沒有辦法執行一次獲取到command1的回傳值。因為command1執行比較慢,想要只執行一次就能獲取回傳值是為了提升效率。您的這種方式是可以正確達到目的,不過與我的初衷有些許出入,還是非常感謝您的解答!轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/46222.html
標籤:應用程序開發區
上一篇:xshell centos
下一篇:不懂就問
