DESIGN / CODE / INFRA / AI

解説

終了コード0は何を意味する?コマンドの表示と成功・失敗を分けて読もう

コマンドを実行して文字が出なかった。成功したのかな、それとも動いていないのかな。画面の表示だけでなく、終了コードという数値も確認してみよう。

終了コード0は何を意味する?コマンドの表示と成功・失敗を分けて読もう
保存リストを見る →
この記事の道しるべ 5項目

コマンドを実行して文字が出なかった。成功したのかな、それとも動いていないのかな。画面の表示だけでなく、終了コードという数値も確認してみよう。

この記事はBashの基本的な終了状態を扱う。シェルはコマンドを受け付けて実行するプログラムだよ。既存のファイルを変更せず、trueとfalseという練習用のコマンドで確かめる。

0と0以外

Bashでは通常、終了コード0は成功を示し、0以外は失敗などの状態を示す。具体的な番号の意味はコマンドごとの仕様によって違うよ。

文字が表示されたかは別の話。成功して何も表示しないコマンドもあれば、エラーの説明を表示して失敗するコマンドもある。0以外の番号を全部同じ原因とみなさないようにしよう。

直後の状態を読む

true
printf '%s\n' "$?"
false
printf '%s\n' "$?"

trueは0、falseは1を返す。$?は直前のコマンドの終了状態を表すので、この練習の表示は0、次に1になる。間へ別のコマンドを入れると、その別のコマンドの状態に変わるよ。

コマンド 画面への表示 終了コード
true 通常なし 0
false 通常なし 1

同じ「何も出ない」でも、状態が違う例なんだ。

成功したときだけ次へ進む

Bashの && は、左のコマンドが成功した場合に右を実行する。次は安全な表示だけを使った練習だよ。

true && printf 'next\n'
false && printf 'next\n'

最初だけnextが表示される。実際のデプロイで使うなら、左のコマンドが何を成功と定義するかも確認する。番号だけ見て、すべての内容が正しいと保証されるわけではない。

パイプでつなぐ場合は別途確認

複数のコマンドを「|」でつなぐと、Bashは通常、最後のコマンドの終了状態をパイプラインの状態に使う。途中の失敗まで同じように検出できるとは限らない。pipefailなどの設定も関係するので、一つのコマンドの練習と分けて読むことが大切だよ。

引用符と変数の扱いは一重・二重引用符の違いも参考になるよ。

参照した公式資料

確認日:2026年10月24日。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。