#navi(../)
* シェルスクリプトのデバッグ・実行する行と変数展開した行を同時表示する [#c58f5599]
本資料を公開する前に「[[シェルスクリプトのデバッグ方法>逆引きシェルスクリプト/シェルスクリプトのデバッグ方法]]」を公開しています。~
この資料は、-xオプションを使用したシェルスクリプトのデバッグについて記述してあります。~
今回は、これから実行するスクリプト行を表示する-vオプションの使用例と、-vと-xの同時併用の使用例を記します。~
尚、使用したシェルはbashになります。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#n4112aaf]
-[[シェルスクリプトのデバッグ方法>逆引きシェルスクリプト/シェルスクリプトのデバッグ方法]]
* 使用したシェルスクリプト [#mc9f5659]
以下のシェルスクリプトをtest.shとして保存し使用しました。
#!/bin/bash
d=`date`
echo $d
a=10
b=10
c=`expr $a + $b`
echo $c
上記の簡単なシェルスクリプトを作成しました。~
このスクリプトを使用して-v, -x オプションを使用してみます。
* -vオプションを使ってみる [#f39d3045]
上記のシェルスクリプトに-vオプションを使用して起動したときの出力です。~
各スクリプト行が表示されています。~
また、スクリプト内にechoがあるのでechoで指定した変数などの値が出力されているのが確認できます。
[sakura@centos6 ~]$ bash -v test.sh
#!/bin/bash
d=`date`
date
echo $d
2013年 2月 15日 金曜日 01:28:00 JST
a=10
b=10
c=`expr $a + $b`
expr $a + $b
echo $c
20
* -xオプションを使ってみる [#yf67d04e]
上記のシェルスクリプトに-vオプションを使用して起動したときの出力です。~
各スクリプト行の変数が展開されて表示されています。~
また、スクリプト内にechoがあるのでechoで指定した変数などの値が出力されているのが確認できます。
[sakura@centos6 ~]$ bash -x test.sh
++ date
+ d='2013年 2月 15日 金曜日 01:30:15 JST'
+ echo $'2013\345\271\264' $'2\346\234\210' $'15\346\227\245' $'\351\207\221\346\233\234\346\227\245' 01:30:15 JST
2013年 2月 15日 金曜日 01:30:15 JST
+ a=10
+ b=10
++ expr 10 + 10
+ c=20
+ echo 20
20
この出力だと、スクリプト行がすでに展開された状態のもののみが表示されるので、少々見にくい場合があります。
* -x, -vオプションを両方とも使ってみる [#na6c277d]
オプション-v, -xの両方を使うと上記で記しオプション-vの機能であるこれから実行するスクリプト行を表示します。~
オプション-xはスクリプト行の変数が展開されて表示されます。~
実際に実行し時の出力です。
[sakura@centos6 ~]$ bash -vx test.sh
#!/bin/bash
d=`date`
date
++ date
+ d='2013年 2月 15日 金曜日 01:34:20 JST'
echo $d
+ echo $'2013\345\271\264' $'2\346\234\210' $'15\346\227\245' $'\351\207\221\346\233\234\346\227\245' 01:34:20 JST
2013年 2月 15日 金曜日 01:34:20 JST
a=10
+ a=10
b=10
+ b=10
c=`expr $a + $b`
expr $a + $b
++ expr 10 + 10
+ c=20
echo $c
+ echo 20
20
スクリプトと展開されたスクリプトの両方が表示されるので、とてもわかり易くなります。~
以上、シェルスクリプトのデバッグにおいて、-v, -xオプションの使用方法について記述しました。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)