* エラー処理 [#ge176370]
** 終了コードによるエラー処理 [#d3041850]
mkdir foo
if [ $? -ne 0 ]; then
echo "Can't mkdir"
fi
** ディレクトリがないから作る [#vb6ca4c4]
mkdir foo || exit 1
if [ ! -d $DIR ]; then
mkdir $DIR
[ $? -ne 0 ] && { echo "Error!"; exit 1; }
fi
** メッセージをエラー出力にecho [#s9f56873]
echo "### ERROR: No such direcotry: $dir" 1>&2
** 異常終了する [#f320c3e6]
if [ -z "$1" ]; then
exit 1
fi
** ショートサーキットでエラー判定する [#l1ed6e37]
#!/bin/sh
mkdir foo
mkdir foo || { echo "Error and exit"; exit 1; }
echo "OK"
↓
mkdir: ディレクトリ `foo' を作成できません: ファイルが存在します
Error and exit
エラー判定後に複数コマンドを実行するには{}でグループコマンドを指定すれば良い。
** ショートサーキットで正常終了とエラー終了の処理をハンドルする [#vc8d7bd8]
$ ! ls && echo "Error" || echo "OK"
$ ! mkdir foo_dir && echo "Error. You can't mkdir" || echo "OK. You did mkdir"
OK. You did mkdir
$ ! mkdir foo_dir && echo "Error. You can't mkdir" || echo "OK. You did mkdir"
mkdir: ディレクトリ `foo_dir' を作成できません: ファイルが存在します
Error. You can't mkdir