シェルスクリプトのデバッグ実行

シェルスクリプトデバッグ実行についてメモ。

シェルのオプション指定による方法

$ cat test.sh
#!/bin/ksh
for I in 1 2 3
do
  echo $I
done

$#実行するコマンドの表示を指定してスクリプトを実行
$ ksh -v ./test.sh
for I in 1 2 3
do
  echo $I
done

1
2
3
$#実行時の変数の中身の表示を指定してスクリプトを実行
$ ksh -x ./test.sh
+ echo 1
1
+ echo 2
2
+ echo 3
3
$#上記の両方を指定してスクリプトを実行
$ ksh -vx ./test.sh
for I in 1 2 3
do
  echo $I
done

+ echo 1
1
+ echo 2
2
+ echo 3
3
$

シェルスクリプト内に set コマンドを記述する方法

$ cat test.sh
#!/bin/ksh

for I in 1 2 3
do
  #表示したい部分の直前でオプションを有効化
  set -vx

  echo $I

  #直後で無効化
  set +vx
done

$ ./test.sh
+ echo 1
1
+ echo 2
2
+ echo 3
3
$

参考

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界