JP1/Advanced Shell
ジョブ定義スクリプトファイルには,次のコマンドおよび制御文が使用できます。
- シェル標準コマンド
- スクリプト拡張コマンド
- スクリプト制御文
- スクリプト予約語コマンド
なお,ジョブ定義スクリプトファイルでは,次の点に注意してください。
- 行の途中にNULL("0x00"またはC言語での"\0")が混入している場合,ジョブコントローラはその行でNULLが現れる部分までを1行と見なします。その行でNULLのあとにほかの文字列があっても無視されます。不正な実行結果や実行時エラーの要因となるため,NULLを記述しないようにしてください。
- (例)
- 入力行("0x00"を「\0」で示します)
echo "test\0null";echo "test after"
- 出力例
echo "test
- ジョブ定義スクリプトを見やすくするため,またはカバレージ情報が適切に表示されるようにするために,1行にコマンドを1個ずつ記述することを推奨します。「;」を使用して,1行に複数のコマンドを記述することはお勧めしません。
カバレージ情報を採取する場合は,次の点に注意してください。
- 1行に記述するコマンドが4個以内の場合は,各コマンドを実行したかどうかの情報を表示できます。
- 1行に記述するコマンドが32個以内の場合は,ジョブ定義スクリプト全体のコマンド数がすべて実行できたどうかを全体のコマンドで判断できます。
- 1行に記述するコマンドが32個を超える場合は,33個目以降のコマンドはカバレージ情報を取得しません。ジョブ定義スクリプト内のすべてのコマンドを実行してもC0実行比率が100%になりません。
- if文などのスクリプト制御文も,スクリプト制御文全体を1行に記述しないで,キーワード単位で改行することを推奨します。
- 次に示すキーワードは,単独で1行に記述してください。「fi;fi」のように記述しないでください。また,次に示すキーワードを同一の行に記述すると,カバレージ情報が正しく表示されません。
- if文の終了を示すfi
- doのブロックの終了を示すdone
- case文の終了を示すesac
- カバレージ情報は,次の内容だけを出力します。
- C0情報の場合,行の先頭からC0対象となる最初の4個のコマンド
- C1情報の場合,行の先頭から最初の4個の実行パス
- 1行に複数のコマンドおよび実行パスを記述すると,すべてのカバレージ情報を表示しない場合があります。
例1
・1行に複数のコマンドおよび実行パスを記述した場合
・複数の行で,コマンドおよび実行パスを記述した場合
echo 1; echo 2; echo 3; echo 4; echo 5
例2
echo 1 echo 2 echo 3 echo 4 echo 5
・1行に複数のコマンドおよび実行パスを記述した場合
・複数の行で,コマンドおよび実行パスを記述した場合
if true ;then echo 1 ;elif true ;then echo 2 ;elif true ;then echo 3 ;else echo 4 ;fi
if true then echo 1 elif true then echo 2 elif true then echo 3 else echo 4 fiコマンドおよび制御文の記述形式を次に示します。
- <この節の構成>
- 9.1.1 シェル標準コマンドの記述形式
- 9.1.2 スクリプト拡張コマンドの記述形式
- 9.1.3 スクリプト制御文の記述形式
- 9.1.4 スクリプト予約語コマンドの記述形式
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.