Shammer's Philosophy

My private adversaria

Bash 終了判定

シェルスクリプトの終了ステータスは、$? に格納されるはずだが、いちいちこれを if で比較判定するの面倒だな、と思っていたら、もっと簡単に実行する方法が見つかった。

 終了ステータス | UNIX & Linux コマンド・シェルスクリプト リファレンス

うーん、このサイトはトラックバック送信はできないようだ。
いいなと思ったのは以下の2つ。

  • コマンドを && でつなげると、先のコマンドが成功した場合のみ次が実行される
  • コマンドを || でつなげると、先のコマンドが失敗した場合のみ次が実行される

バックグラウンドで動作させる処理(& をつける場合)は、このサイトに記載されていなかったが、以下のようにすることで判定されるみたいだ。

function1 && eval "function2 &" && function3

& が必要な処理はダブルクォートで囲んで、その前に eval をつけたらうまくいったように見える。