を命令する変数割り当ての終了コード、私ははっきりとコマンド置換と変数の代入を実行するときに、コマンドが返されますどのようなエラーコードについて混乱しています:バッシュ:置換
a=$(false); echo $?
それは私が考えてみましょう1
を出力しますその変数の代入は、最後の変数に対して新しいエラーコードをスウィープまたは生成しません。私はこの試みたときしかし:それは0
を出力
false; a=""; echo $?
を、明らかにこれは何a=""
リターンであり、それはfalse
によって返さ1
を上書きします。
なぜこのようなことが起こるか知りたいのですが、他の通常のコマンドとは異なる変数割り当てには特別な意味がありますか?それとも、単にa=$(false)
が1つのコマンドとみなされ、コマンド置換部分のみが意味を成すのでしょうか?
- UPDATE -
みんなありがとう、私はポイントを得た答えとコメントから、「あなたはコマンド置換を使用して変数を割り当てる場合、終了ステータスはコマンドのステータスです。」 (@Barmarによる)、この説明は非常に明確で理解しやすいですが、プログラマにとっては十分正確ではないので、私はTLDPやGNU manページのような当局からこの点を参照したいと思っています。もう一度、ありがとう!
TLDPは信頼できるソースではありません - ABSは、JavaScriptの世界にw3schoolsがあるのと同じように、悪い習慣をbashで披露していると大変悪評されています。 –