Ksh

ksh 中的排版和返回狀態

  • March 24, 2015

我希望能夠將本地變數聲明為命令的結果,並且能夠擷取命令的返回狀態。

像這樣的東西:

#!/bin/ksh
typeset -r command_output=$(command)
typeset -r return_status=$?
echo "$return_status" # always 0

上面程式碼片段的問題是 return_status 將始終為 0,即使命令以另一個狀態程式碼退出。

有沒有人能幫幫我?

問題是typeset創建返回狀態。此程式碼(即同一聲明中的兩個分配)適用於我:

typeset -r command_output=$(command) return_status=$?

要保持return_status可寫(非只讀),您可以執行以下操作:

typeset    command_output=$(command) return_status=$?
typeset -r command_output

(即將只讀變數聲明為後續命令)。

引用自:https://unix.stackexchange.com/questions/192309