1.06.2基礎
必要な処理がすべて完了した。
呼び出し元へ成功を示してスクリプトを終了する。
適切な記述はどれか。
× 不正解
exit 0は現在のシェルスクリプトを成功状態で終了する。呼び出し元は終了状態を条件分岐に利用できる。
詳細解説
正しい
exit 0終了状態0を呼び出し元へ返して終了する。
exit 0はスクリプトを直ちに終了し、呼び出し元へ成功状態を返す。全処理完了という状況に一致する。
誤り
exit 1一般に失敗を示す非0で終了する。
exit 1は非0の失敗状態を返す。処理が正常完了したことを呼び出し元へ伝えられない。
誤り
return 0関数やsourceされたファイルでは使えるが、通常のトップレベル実行スクリプト終了にはexitを使う。
returnは関数やsourceされたファイルから呼び出し元へ戻るために使う。独立実行スクリプトのトップレベル終了にはexitを使う。
誤り
break 0breakはループ脱出用で、成功状態によるスクリプト終了ではない。
breakはforやwhileなど現在のループを終了する。スクリプト全体の終了状態0を指定して終了する操作ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
sh -c 'exit 0'; printf '%s\n' "$?"期待される結果
0理解のポイント
- 0は成功
- exitはスクリプト終了
- 呼び出し元へ状態を返す
確認時の注意
- 確認環境: POSIX sh / 短命プロセス
- exitは現在のシェルを終了するため、対話シェルで直接試さず子シェルで検証する。
基礎のおさらい
成功状態
終了状態0は成功として&&やifなどの条件で真に扱われる。
exit省略時
明示的なexitがなければ、通常は最後に実行したコマンドの終了状態がスクリプトの状態になる。
問題IDKL-102-925
確認環境POSIX sh / 短命プロセス
最終技術確認2026-08-13
誤り・権利侵害を報告