* エラー処理 [#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


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS