26

割り当てが関数のローカル変数に対するものである場合、bashのコマンド置換の終了コードを確認するにはどうすればよいですか?
次の例を参照してください。2つ目は、終了コードを確認する場所です。
誰かがこれに対する良い回避策または正しい解決策を持っていますか?

$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
4

1 に答える 1

31

のmanファイルlocal(実際にはBASHビルトインのmanページ)を見ると、それは独自のコマンドとして扱われ0、ローカル変数の作成に成功したときの終了コードを提供します。local最後に実行されたエラーコードを上書きします。

これを試して:

function testing { local test; test="$(return 1)"; echo $?; }; testing

編集:私は先に進んであなたのためにそれを試しました、そしてそれはうまくいきます。

于 2012-03-01T22:14:25.540 に答える