Exit
在bash中,使用本地時如何檢索子shell的退出程式碼
這個問題與其他問題很接近 -我可以從使用 $(command) 啟動的子 shell 中獲取退出程式碼嗎?
但是,我沒有發現任何解決方案可以讓我在使用 local 和 eval 時從子 shell 獲取退出程式碼,如本例所示……
test() { > local WHY="$(eval "echo 'test'"; exit 3)"; echo $? > } test 0
這很簡單:不要使用單個命令,而是拆分:
test() { local why why="$(eval "echo 'test'"; exit 3)"; echo $? } test 3
問題是這
local
是一個帶有自己退出程式碼的內置命令…如果您在分配變數的同時避免該命令,您將從子shell 中獲得退出程式碼。