シェルスクリプトのメモ

メモしてたと思ったら書いてなかったみたい……なのでメモするのです。
環境: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

とかで調べるといいかも。