JP1/Advanced Shell
ジョブ定義スクリプトが停止した位置から1つのコマンドを実行するコマンドは,stepコマンドおよびnextコマンドです。stepコマンドは停止した位置の1つのコマンドで関数が呼ばれている場合,関数内に入ります。nextコマンドは停止した位置の1つのコマンドで関数が呼ばれていても,関数内で停止しないで実行します。stepコマンドの短縮形は"s",nextコマンドの短縮形は"n"です。
- <この項の構成>
- (1) stepコマンド
- (2) nextコマンド
(1) stepコマンド
stepコマンドの形式を次に示します。
stepstepコマンドを実行した場合の動作を次に示します。
- 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 Current: val=1 (adshdb) step … KNAX7032-I Stop in the script "test.ash". 7: num=2 Current: num=2 (adshdb)- 8行目の関数呼び出し「funcA」の実行前で停止しているときにstepコマンドを実行すると,2行目の「echo」の実行前で停止します。
8: funcA Current: funcA (adshdb) step KNAX7032-I Stop in the script "test.ash". 2: echo "funcA" Current: echo (adshdb)
(2) nextコマンド
nextコマンドの形式を次に示します。
nextnextコマンドを実行した場合の動作を次に示します。
- 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 Current: val=1 (adshdb) next … KNAX7032-I Stop in the script "test.ash". 7: num=2 Current: num=2 (adshdb)- 8行目の関数呼び出し「funcA」の実行前で停止しているときにnextコマンドを実行すると,9行目の「echo」の実行前で停止します。
8: funcA Current: funcA (adshdb) next … KNAX7032-I Stop in the script "test.ash". 9: echo $num Current: echo (adshdb)
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.