Bash
bash函式中的隱式返回?
假設我有一個像這樣的 bash 函式:
gmx(){ echo "foo"; }
這個函式會隱式返回命令的退出值
echo
,還是需要使用 return?gmx(){ echo "foo"; return $? }
我假設 bash 的工作方式,bash 函式的最終命令的退出狀態是“返回”的狀態,但不是 100% 確定的。
return
從 shell函式或“點腳本”(源腳本)*顯式返回。*如果return
未執行,則在 shell 函式或點腳本的末尾進行隱式返回。如果
return
不帶參數執行,則相當於返回最近執行的命令的退出狀態。這就是
return
在所有 POSIX shell 中的工作方式。例如,
gmx () { echo 'foo' return "$?" }
因此等價於
gmx () { echo 'foo' return }
這與
gmx () { echo 'foo' }
一般來說,您很少需要使用它
$?
。僅當您需要將其保存以備將來使用時才需要它,例如,如果您需要多次調查其值(在這種情況下,您會將其值分配給一個變數並對該變數執行一系列測試)。