bash でシェルスクリプトを書いていて、エラー処理をif文を使って
command ... if [ $? -ne 0 ] then echo ... exit 1 fi
みたいに書くと、コードが見づらいのでなんとかならないかと思っていたら、
command ... || { echo ... ; exit 1 ; }
こういう風に書けるのか。
Perl の「or die」みたい。ってか Perl のほうが新しいと思うけど。
command ... || echo ... ; exit 1
のように書くと exit が実行されないので要注意。って bashクックブック に書かれてました。
例
- hoge1.sh
#!/bin/bash mkdir log if [ $? -ne 0 ] then echo oops! exit 1 fi echo created directory.
- hoge2.sh
#!/bin/bash mkdir log || { echo oops!; exit 1; } echo created directory.
- 実行結果
$ touch log $ ./hoge1.sh mkdir: cannot create directory `log': File exists oops! $ ./hoge2.sh mkdir: cannot create directory `log': File exists oops!
参考
- 作者: Carl Albing,JP Vossen,Cameron Newham,株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/09/26
- メディア: 大型本
- 購入: 8人 クリック: 268回
- この商品を含むブログ (31件) を見る