私はこのようなスクリプトの構成を見てきました:
_if somevar="$(somecommand 2>/dev/null)"; then
...
fi
_
これはどこかに文書化されていますか?変数の戻りステータスはどのように決定され、コマンド置換とどのように関連していますか? (たとえば、if echo "$(somecommand 2>/dev/null)"; then
でも同じ結果が得られますか?)
Bash(LESS=+/'^SIMPLE COMMAND EXPANSION' bash
):
展開後にコマンド名が残っていると…。それ以外の場合、コマンドは終了します。 ...コマンド置換がない場合、コマンドはステータス0で終了します。
言い換えれば(私の言葉):
展開後にコマンド名が残っておらず、コマンド置換が実行されていない場合、コマンドラインはステータス0で終了します。