検索
特集

シェルスクリプトのデバッグツール、bashdbPrograming Bible(2/3 ページ)

シェルスクリプトで多くの処理をこなしている方は多いだろう。しかし、シェルスクリプトが思い通りに動かないときに、不正な値や到達しないコードパスを探するのは少々やっかいだ。そこで、bashdbを利用すれば、変数をウオッチしたりブレークポイントを設定したりして、速やかにデバッグできる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
SourceForge.JP Magazine

 以下、bashdbの使い方を説明するが、その際、例として次に示すbashスクリプトを用いることにする。これは1つの数値nを引数として受け取り、n番目のフィボナッチ数を計算するスクリプトだ。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 それでは、このスクリプトの動作をbashdbで調べてみよう。下に示したのは、スクリプトを1行ずつ実行していき、fibonacci関数の中に入って変数を調べている様子だ。見やすさのため、入力したテキストは太字にしてある。最初にバックトレース(bt)を実行しているが、その結果からスクリプトが3行目から始まっていることが分かる。この行では、version変数に値を設定している。

 次に、nextコマンドで次の行に進み、listコマンドで現在実行している行を表示している。次のnextコマンドに続いて、何も入力せずにEnterを押しているが、この場合これはnextコマンドを実行することになる。次に、examineコマンドの1文字ショートカットであるxを実行している。その結果から、このコマンドがdeclareを利用して変数を表示していることが分かる。このすぐ後で、同じ変数をprintコマンドを使って表示しているが、こちらはdeclareを使わない。次に、fibonacci関数にブレークポイントを設定し、continueでシェルスクリプトの実行を再開させている。そして、fibonacci関数が呼び出されるとスクリプトの実行が止まる。そこで、nextで1行ずつ実行していき、変数を調べて終わっている。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここで、終わり近くのbashdbプロンプトの数字が丸括弧でくくられている点に注意。これは、サブシェルに入ったことを示している。この場合は、シェル関数の中に入ったことを意味する。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

ページトップに戻る