終了ステータスと && ||
すべてのコマンドは終了ステータス(0=成功/0以外=失敗)を返す。直前の結果は $? で読める。A && B は成功したときだけ B、A || B は失敗したときだけ B を実行する。分岐と安全網の土台だ。
コマンドは画面の出力だけでなく、目に見えない「成否の合図」も返している。それが終了ステータスだ。これを読めると、スクリプトは「できたら次、ダメなら中断」と賢く動ける。
🎯 0 は成功、それ以外は失敗
コマンドが正常に終わると 0、失敗すると 0 以外を返す。直前の値は $? で読める。人間には見えないが、シェルは常にこの数字で結果を判断している。
▶
例ls /存在しない ; echo $? → 2 のような 0 以外が返る。
🔗 && と || でつなぐ
A && B は「A が成功したときだけ B」、A || B は「A が失敗したときだけ B」を実行する。成功を前提に進める処理や、失敗時の保険を1行で書ける。
▶
例cp a.txt b.txt && echo コピー完了 / grep -q ERROR log || echo エラーなし。
💡
ポイントif 文の条件も、実はこの終了ステータスで動いている。test([ ])は結果を 0/1 の終了ステータスで返しているだけだ。
✓
コツスクリプトの最後に exit 0 / exit 1 を明示すると、呼び出した側が成否を判断できる。自動化ではこの合図が命綱になる。
この項目に出てくる用語
終了ステータスしゅうりょうすてーたす
コマンドが返す成否の数値。0=成功、0以外=失敗。$? で読める。
&& と ||あんど・おあ
コマンドを結果で連結する記号。A && B は成功時のみB、A || B は失敗時のみB。