JP1/Advanced Shellは,次に示す制御文を使用できます。詳細については,「9.5 スクリプト制御文」を参照してください。
制御文の次に示す個所に,コマンド置換,またはスクリプト拡張コマンドを除く任意のコマンドを指定できます。
指定した任意のコマンドの終了コードは,ジョブおよびジョブステップの終了コードに反映されません。制御文の実行が完了した時点でのジョブおよびジョブステップの終了コードは制御文のブロック内で最後に実行されたコマンドの終了コードになります。
ただし,次の条件のどれかに該当する場合は,指定した任意のコマンドの終了コードは,ジョブおよびジョブステップの終了コードに反映されます。ジョブステップが完了した時点でのジョブおよびジョブステップの終了コードは,指定したコマンドの終了コードになります。
JP1/AJSでジョブをエラーとしたい場合など,エラーとなったコマンドの終了コードをジョブの終了コードに反映したい場合は,onError属性にstopを指定したジョブステップ内に制御文を記述してください。
if文での例を次に示します。
if `cmd true` ←cmdは存在しないコマンド名
then
echo "true"
else
echo "false" ←else節が実行される
fi
# この時点でのジョブの終了コードは0となる
上記の例1で,if文の条件1に指定したコマンド置換のcmdが存在しないコマンド名の場合,条件が偽と見なされelse節の「echo "false"」が実行されます。このとき,if文が完了した時点でのジョブの終了コードは0になります。
#-adsh_step_start S1 -onError stop
if `cmd true` ←cmdは存在しないコマンド名
then
echo "true"
else
echo "false"
fi
#-adsh_step_end ←then節もelse節も実行しないでジョブステップ中断
# ジョブステップS1,およびこの時点でのジョブの終了コードは127となる
上記の例2で,if文の条件1に指定したコマンド置換のcmdが存在しないコマンド名の場合,if文のthen節とelse節のどちらも実行しないでジョブステップの実行を中断します。このとき,ジョブステップが完了した時点でのジョブの終了コードは,指定したコマンドが存在しないことを示す127になります。ジョブステップの定義,およびonError属性については,「9.4 スクリプト拡張コマンド」の「#-adsh_step_start コマンド,#-adsh_step_error コマンド,#-adsh_step_end コマンド(ジョブステップを定義する)」を参照してください。