5.8.4 正常終了するコマンドを定義する
(1) 終了コードが0以外でも正常終了となるコマンドを定義する
コマンドの終了コードが0以外でも正常終了と認識されるよう,正常終了とする終了コードのしきい値を設定できます。終了コードがこのしきい値を超えなければ,正常終了と処理されます。
終了コードのしきい値は次に示す環境設定パラメーターで設定します。
CMDRC_THRESHOLD_USE_PRESETパラメーター
次のすべてのUNIX互換コマンドに対し,終了コードのしきい値を設定します。設定できるしきい値は0または1です。
cmpコマンド
diffコマンド
egrepコマンド
exprコマンド
grepコマンド
sortコマンド
詳細については,「CMDRC_THRESHOLD_USE_PRESETパラメーター(UNIX互換コマンドの終了コードのしきい値を定義する)」を参照してください。
CMDRC_THRESHOLD_DEFINEパラメーター
対象となるコマンドと,終了コードのしきい値を設定します。指定できるコマンドの種類は次のとおりです。
外部コマンド
UNIX互換コマンド
シェルスクリプト
シェル運用コマンド
子孫ジョブ
詳細については,「CMDRC_THRESHOLD_DEFINEパラメーター(コマンドの終了コードのしきい値を定義する)」
(2) 常に正常終了するコマンドを定義する
#-adsh_rc_ignoreコマンドを使用すると,定義した名称のコマンドは,終了コードに関係なく常に正常終了します。その場合,対象コマンドの終了コードはジョブステップの成功または失敗の判定に影響しません。
ただし,コマンドがシグナル終了した場合は,指定に関係なくコマンドエラー終了になります。
なお,次に示すコマンドは,終了コードが0以外でもエラーになりません。したがって,このコマンドの指定に関係なく終了コードを無視します。
trueコマンド,falseコマンド
#-adsh_rc_ignoreコマンドの定義は,指定した個所以降のジョブ定義スクリプト実行で有効となります。ジョブステップ外に指定した場合はジョブ定義スクリプト全体に有効で,ジョブステップ内に指定した場合はジョブステップ内だけで有効です。ジョブステップ内に指定した場合,指定した個所以降からジョブステップ終了まで有効となり,ジョブステップ外に指定した値は一時的に無効になります。また,ジョブステップ内に指定するまではジョブステップ外に指定した値が有効になります。
指定例を次に示します。
01: #!/opt/jp1as/bin/adshexec 02: #-adsh_job JOB0001 03: 04: uap01 05: uap02 06: #-adsh_rc_ignore uap03,uap04 ←1. ジョブステップ外に指定 07: uap03 ←行07〜14の指定が1.の有効範囲 08: 09: #-adsh_step_start STEP1 10: uap04 11: #-adsh_step_end 12: 13: #-adsh_step_start STEP2 14: uap05 15: #-adsh_rc_ignore uap06,uap07 ←2. ジョブステップ内に指定 16: uap06 ←行16〜17の指定が2.の有効範囲 17: uap07 18: #-adsh_step_end 19: 20: #-adsh_step_start STEP4 ←行20〜22の指定が1.の有効範囲 21: uap08 22: #-adsh_step_end
(3) 終了コードが0以外でも正常終了となる機能の優先順位
CMDRC_THRESHOLD_DEFINEパラメーター,#-adsh_rc_ignoreコマンド,#-adsh_step_startコマンドのsuccessRC属性,およびadshcmdrcコマンドを同時に指定したときの優先順位は次のようになります。数字が小さい方が優先順位が高くなります。また,CMDRC_THRESHOLD_USE_PRESETパラメーターの対象となるコマンドに対して定義する場合は,CMDRC_THRESHOLD_USE_PRESETパラメーターは優先順位7となります。
1. ジョブステップ内に定義した#-adsh_rc_ignoreコマンド 2. ジョブステップ外に定義した#-adsh_rc_ignoreコマンド 3. ジョブステップ内に定義したadshcmdrcコマンド 4. #-adsh_step_startコマンドのsuccessRC属性 5. ジョブステップ外に定義したadshcmdrcコマンド 6. CMDRC_THRESHOLD_DEFINEパラメータ 7. CMDRC_THRESHOLD_USE_PRESETパラメータ
コマンド名のコマンドに対して,終了コードが0以外でも正常終了となる各機能を定義したときの例を次に示します。
- ジョブ定義スクリプト
-
#-adsh_rc_ignore コマンド名 …2 adshcmdrc コマンド名 1 …5 #-adsh_step_start STEP1 -successRC 2 …4 #-adsh_rc_ignore コマンド名 …1 adshcmdrc コマンド名 3 …3 コマンド名 #-adsh_step_end
- 環境ファイル
-
#-adsh_conf CMDRC_THRESHOLD_DEFINE コマンド名 10 …6