シェルはさまざまな実行環境を作り出すために幾つかのオプションを持っています。 スクリプトのデバッグ用としては -v、 -xの2つオプションを使うこと ができます。
-vはスクリプトからコマンドを1行読むごとに表示させるためのオプションで、 構文のチェックに利用できます。オプションを設定するにはシェルスクリプト内に
set -vの1行を追加するか、あるいは次のようにしてシェルスクリプト走らせます。
sh -v script
-xオプションはコマンドを実行するたびにそのコマンド名と
引数を +
に続いて表示するものです。
引数はシェルにより展開されたものが表示されますので
実行状態をトレースすることができます。
これらのオプションをまとめて、あるいは設定されて
いるものだけを解除するには
set -とします。もし、個別に解除したければ
set +vなどとします。なお、現時点でシェルに設定されているオプションを調べたい場合に はシェル変数
$-
を参照します。
実際に使われることは少ないですが -n, -u なども役に立つかも知れません。 -nは読み込んだコマンドの実行を禁止させるためのオプションです。 予想もしないバグで大切なファイルを削除してしまうなどの被害を未然に防ぐことが できます。カレントシェルで set -n とするとEOF(End Of File)を入力するまでそ の端末からの操作ができなくなります。
-uオプションを設定すると値が格納されていないシェル変数を参照 しようとした時に unset variable のエラーメッセージが表示されスクリプトが 停止します。
それといまさらでしょうが、ソースデバッグもお忘れなく。結局、これに勝るデバッ グ手法はないようです。