コマンドの成功を判定するためには、終了ステータスを確認します。
一般的に、終了ステータスが次のように判断されます。
0なら成功
0以外なら失敗
になります。
終了ステータスは0から255の範囲の値を取りますが、125を超える値はシェルが特定の目的で利用します。
例えば、
126はコマンドが見つかったが実行できなかったことを示し、
127はコマンドが見つからなかったことを示します。また、
128+NはN番目の致命的なシグナルによる終了を意味します。
式展開やリダイレクトの失敗時には0を超える終了ステータスが返され、GNU Bashではすべての組み込みコマンドはエラー時に終了ステータスとして2が返されます。
直前のコマンドの終了ステータスは$?で確認できます。(以下のコマンド例の文法エラーはif文にthenが足りません。)
1 2 3 4 |
$ if true; :; fi bash: syntax error near unexpected token `fi' $ echo $? 2 |