[英]Is it possible to get the exit code from a subshell?
我們假設我有一個bash腳本,我稱之為:
bash -c "some_command"
do something with code of some_command here
是否有可能獲得some_command
的代碼? 我沒有直接在運行腳本的shell中執行some_command
,因為我不想改變它的環境。
$?
將像往常一樣包含some_command
的返回代碼。
當然它也可能包含來自bash的代碼,萬一在你的命令執行之前出現問題(錯誤的文件名,諸如此類)。
這是$?
的例子$?
和Paggas和Matti提到的括號子shell:
$ (exit a); echo $?
$ (exit 33); echo $?
在第一種情況下,該代碼是一個擊錯誤,並在第二情況下,它的退出代碼exit
。
你可以使用$?
變量,請查看bash文檔,它存儲最后一個命令的退出狀態。
另外,你可能想要查看bash的括號樣式命令塊(例如comm1 && (comm2 || comm3) && comm4
),它們總是在子shell中執行,因此不會改變當前環境,並且更強大!
編輯:例如,當使用()樣式塊與bash -c'命令'相比時,您不必擔心使用空格或任何其他特殊shell語法轉義任何參數字符串。 您直接使用shell語法,它是其余代碼的正常部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.