shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。
set -e
とすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。
#!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HERE
とすると
% ./hoge.sh Died at -e line 1. % echo $? 255
となって、最後までいかずに死にます。
複数のコマンドを順番に実行するときに便利。
なお、以下のような挙動をするんだそうです。
ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されている、のいずれかの場合にはシェルは終了しません。
実行状況を順番に echo で表示してもいいんだけど、めんどくさいので、以下のようにすると、自動的に echo されて便利です。
set -x