私の端末では、一見ランダムな数字が印刷されます127
。私はそれが特定の変数の値を印刷していると思い、疑いを確認するために新しい変数を定義しましたv=4
。もう一度実行すると、出力がecho $?
私に与えられました。0
4が答えになると期待していたので混乱しています。
ベストアンサー1
からman bash
:
$?最後に実行された前景パイプの終了状態に展開されます。
echo $?
最後のコマンドの終了ステータスを返します。あなたが得ることは127
(おそらく)いくつかのエラーで終了した最後の実行コマンドの終了状態です。コマンドは終了状態0
(ほとんど)で正常に完了すると終了します。前のコマンドがエラーなしで完了した0
ため、最後のコマンドが出力を提供しました。echo $v
コマンドを実行すると
v=4
echo $v
echo $?
次のような出力が得られます。
4 (from echo $v)
0 (from echo $?)
また試してみてください:
true
echo $?
あなたは得るでしょう0
。
false
echo $?
あなたは得るでしょう1
。
コマンドtrue
は何もせずにステータスコードで終了します0
。false
コマンドは何もせず、失敗を示すステータスコード(ステータスコードなど1
)で終了します。