kshの組版と戻り状態

kshの組版と戻り状態

コマンドの結果としてローカル変数を宣言し、コマンドの戻り状態をキャプチャできるようにしたいです。

このような:

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

上記のコードスニペットの問題は、コマンドが別のステータスコードで終了しても、return_statusが常にゼロであることです。

誰でも私を助けることができますか?

ベストアンサー1

問題は、typeset返品ステータスが生成されることです。このコード(つまり、同じ宣言に2つの割り当て)が私にとって効果的です。

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

return_status読み取り専用ではなく書き込み可能な状態を維持するには、次のようにします。

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

(つまり、後続のコマンドで読み取り専用変数を宣言します。)

おすすめ記事