シェルスクリプトのメモ
メモしてたと思ったら書いてなかったみたい……なのでメモするのです。
環境:RHEL5.5 bash3.2.25
構文チェック
$ sh -n xxx.sh
xxx.shの構文チェックをします。ただ、括弧が片方ないとか、そういうレベルだったはずなのでそんなに期待できないというか……
コマンドが失敗した場合に終了する
普通にスクリプトを実行すると、エラーが発生しても(戻り値が0以外であっても)そのまま最後まで実行しようとするのですが、それを抑止する方法。
$ sh -e xxx.sh
もしくはスクリプト中に
set -e
を記述します。無効化するときは
set +e
だった……かな?
set +e which aaa set -e
などと特定の範囲のみエラーを無視して続行する、というようなことが出来たような……気がします。
未定義の変数を使用した場合に終了する
普通に未定義の変数を使用すると、空文字とかになってそのまま実行されるのですが、これは未定義だった場合はその場で終了するようにする方法。
$ sh -u xxx.sh
もしくはスクリプト中に
set -u
を記述します。
まあまあ使う場面があると思うのでそれなりに有用かなーと。
調べたのが大分前で、間違っている部分もあるかと思うので
$ man bash
とかで調べるといいかも。