tokuhirom's blog

shell script を書くときの tips 2つ(初心者向け)

shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。

autodie っぽくする

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 ON っぽくする

実行状況を順番に echo で表示してもいいんだけど、めんどくさいので、以下のようにすると、自動的に echo されて便利です。

set -x
Created: 2012-07-24 07:39:49 UTC
Updated: 2012-07-24 07:39:49 UTC