Hitachi

JP1 Version 11 JP1/Advanced Shell 


6.2.8 逐次実行をする(stepコマンド,nextコマンド)

ジョブ定義スクリプトが停止した位置から1つのコマンドを実行するコマンドは,stepコマンドおよびnextコマンドです。stepコマンドは停止した位置の1つのコマンドで関数が呼ばれている場合,関数内に入ります。nextコマンドは停止した位置の1つのコマンドで関数が呼ばれていても,関数内で停止しないで実行します。stepコマンドの短縮形は"s",nextコマンドの短縮形は"n"です。

〈この項の構成〉

(1) stepコマンド

stepコマンドの形式を次に示します。

step

stepコマンドを実行した場合の動作を次に示します。

stepコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でstepコマンドを実行すると,ジョブ定義スクリプトが停止した位置から1つのコマンドを実行します。関数が呼ばれている場合は関数内に入ります。

ジョブ定義スクリプトが実行されていないときは,エラーメッセージが出力されます。

stepコマンドの後ろに引数を指定した場合

コマンドを実行すると,エラーとなります。

注意事項

シェル標準コマンドのevalコマンドの引数に関数呼び出しを指定している場合,evalコマンドを逐次実行すると,その関数呼び出しを実行したあとの停止位置は,stepコマンドの動作に従います。

使用例

6行目の「val=1」の実行前で停止しているときにstepコマンドを実行すると,7行目の「num=2」の実行前で停止します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num
6: val=1
現在位置: val=1
(adshdb) step
…
KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。
7: num=2
現在位置: num=2
(adshdb)

8行目の関数呼び出し「funcA」の実行前で停止しているときにstepコマンドを実行すると,2行目の「echo」の実行前で停止します。

8: funcA
現在位置: funcA
(adshdb) step
KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。
2:   echo "funcA"
現在位置: echo
(adshdb)

(2) nextコマンド

nextコマンドの形式を次に示します。

next

nextコマンドを実行した場合の動作を次に示します。

nextコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でnextコマンドを実行すると,ジョブ定義スクリプトが停止した位置から1つのコマンドを実行します。関数が呼ばれていても関数内で停止しません。

ジョブ定義スクリプトが実行されていないときは,エラーメッセージが出力されます。

nextコマンドの後ろに引数を指定した場合

コマンドを実行すると,エラーとなります。

注意事項
  • nextコマンドを実行した場合,次の1コマンドで関数が呼ばれて,その関数内でブレークポイント,ウォッチポイントおよびシグナルによる停止判定を満たしたとき,ジョブ定義スクリプトの実行を停止します。

  • シェル標準コマンドのevalコマンドの引数に関数呼び出しを指定している場合,evalコマンドを逐次実行すると,その関数呼び出しを実行したあとの停止位置は,nextコマンドの動作に従います。

使用例

6行目の「val=1」の実行前で停止しているときにnextコマンドを実行すると,7行目の「num=2」の実行前で停止します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num
6: val=1
現在位置: val=1
(adshdb) next
…
KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。
7: num=2
現在位置: num=2
(adshdb)

8行目の関数呼び出し「funcA」の実行前で停止しているときにnextコマンドを実行すると,9行目の「echo」の実行前で停止します。

8: funcA
現在位置: funcA
(adshdb) next
…
KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。
9: echo $num
現在位置: echo
(adshdb)