環境変数を設定すると、最後の既存のコード変数が変更されることに驚きました$?
。
$ false
$ echo $?
1
$ false
$ FOO=BAR
$ echo $?
0
$
Bashのマニュアルには次のようにしか記載されていません$?
。
($?) 最後に実行された前景パイプの終了状態に展開されます。
設定している変数の終了コードはどこに記録されますか?失敗しますか?
ベストアンサー1
右式を評価できないと、割り当てが失敗する可能性があります。
例えば
$ x=HELLO
$ x=$((1/0))
bash: 1/0: division by 0 (error token is "0")
$ echo $?
1
この場合、値は$x
変更されません。
$ echo $x
HELLO