web-dev-qa-db-ja.com

変数割り当ての戻りステータスはどのように決定されますか?

私はこのようなスクリプトの構成を見てきました:

_if somevar="$(somecommand 2>/dev/null)"; then
...
fi
_

これはどこかに文書化されていますか?変数の戻りステータスはどのように決定され、コマンド置換とどのように関連していますか? (たとえば、if echo "$(somecommand 2>/dev/null)"; thenでも同じ結果が得られますか?)

10
Wildcard

Bash(LESS=+/'^SIMPLE COMMAND EXPANSION' bash):

展開後にコマンド名が残っていると…。それ以外の場合、コマンドは終了します。 ...コマンド置換がない場合、コマンドはステータス0で終了します。

言い換えれば(私の言葉):

展開後にコマンド名が残っておらず、コマンド置換が実行されていない場合、コマンドラインはステータス0で終了します。

2
user79743