CHILDJOB_PGMパラメーター(子孫ジョブとして実行する指定を定義する)
形式
#-adsh_conf CHILDJOB_PGM プログラムパス名 [実行プログラムの引数]
機能
ジョブ定義スクリプト中に「プログラムパス名 [実行プログラムの引数]ファイル」という指定が現れた場合,KNAX6830-Iメッセージをジョブ実行ログに出力し,ファイルをジョブ定義スクリプトと解釈し,子孫ジョブとして実行します。なお,KNAX6830-Iメッセージは,JOBLOG_SUPPRESS_MSGパラメーターでジョブ実行ログへの出力を抑止できます。
例を次に示します。
- パラメーターの指定例
#-adsh_conf CHILDJOB_PGM sh -x
- ジョブ定義スクリプトの内容
sh -x $HOME/script/test.ash
この例の場合,「$HOME/script/test.ash」をジョブ定義スクリプトと解釈し,子孫ジョブとして実行します。
指定できるオペランドの数は,プログラムパス名と実行プログラムの引数の合計で,64個までです。65個以上指定した場合,パラメーター解析時にエラー終了します。
Windows版では,環境ファイルにCHILDJOB_PGMパラメーターを定義しなくても,プログラムパスに「adshscripttool -exec」が指定されたCHILDJOB_PGMパラメーターが定義されています。adshscripttoolコマンドについては,「adshscripttoolコマンド(ジョブ定義スクリプトの作成を支援する)【Windows限定】」を参照してください。
オペランド
注意事項
-
システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,両方の定義が有効になります。ただし,システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合,エラーになります。
-
このパラメーターとPATH_CONVパラメーターで,同じオペランドを定義した場合,PATH_CONVパラメーターによる変換が先に実施されます。例を次に示します。
環境ファイルの内容
#-adsh_conf PATH_CONV_ENABLE / : ←1. #-adsh_conf PATH_CONV /usr/bin C:\\usr\\bin ←2. #-adsh_conf CHILDJOB_PGM /usr/bin/ksh ←3.
ジョブ定義スクリプトの内容
"/usr/bin/ksh" C:\\script\\test.ash
この例では,1.および2.が先に実施され,「/usr/bin/ksh」が「C:\\usr\\bin\\ksh」に変換されます。その後,3.によって「/usr/bin/ksh」が子孫ジョブとして実行するように読み替えるプログラムパスと解釈されます。しかし,パス変換済みのジョブ定義スクリプトの中には一致する文字列が存在しないため,「C:\\script\\test.ash」は子孫ジョブとして実行されません。
-
このパラメーターとCOMMAND_CONV_ARGパラメーターで,同じオペランドを定義した場合,COMMAND_CONV_ARGパラメーターによる変換が先に実施されます。
-
このパラメーターは,変数置換やエイリアスの解決後の文字列に対して適用されます。変数置換の例を次に示します。
環境ファイルの内容
#-adsh_conf CHILDJOB_PGM /usr/bin/ksh
ジョブ定義スクリプトの内容(ここでは変数SHELLの値を"/usr/bin/ksh"と仮定)
$SHELL /home/usr/test.ash
この例では,「$SHELL」が「/usr/bin/ksh」として解決されたあとに,パラメーターの定義に従って読み替えられるため,「/home/usr/test.ash」は子孫ジョブとして実行されます。
-
このパラメーターを使用して子孫ジョブを実行した場合,ジョブ実行ログに出力されるコマンド名は,JP1/Advanced Shellのコマンド(adshexecコマンドまたはadshexecsubコマンド)となります。
ただし,コマンドを次の書式で実行した場合,ジョブ実行ログに出力されるコマンド名は,このパラメーターが適用される前のプログラムパス名となります。
-
パイプ(|)による別プロセスの実行
-
コマンド置換($(),``)による別プロセスの実行
-
|&によるバックグラウンドプロセスの実行
-
単一コマンドのグループ化によるサブシェルの実行
-
&によるバックグラウンドの実行
-
-
シェル標準コマンドのexecコマンド,commandコマンド,evalコマンド,およびスクリプト予約語コマンドのtimeコマンドの引数に指定したプログラムパスも,このパラメーターが適用される対象となります。
-
このパラメーターは,ジョブ定義スクリプト中のシェル標準コマンド,シェル拡張コマンド,関数,外部コマンドに対して適用されます。
-
パス名,および実行プログラムの引数は,環境ファイルの1行の長さの上限の範囲で指定してください。
使用例
ジョブ定義スクリプトに指定された「$HOME/script/test.ash」を子孫ジョブとして実行させる場合を例に,ジョブ定義スクリプトと環境ファイルの指定内容を次に示します。CHILDJOB_PGMパラメーターで指定した内容を下線で示します。
- 例1
-
- 環境ファイルの内容
#-adsh_conf CHILDJOB_PGM /bin/sh
- ジョブ定義スクリプトの内容
/bin/sh $HOME/script/test.ash
- 例2
-
- 環境ファイルの内容
#-adsh_conf CHILDJOB_PGM /opt/jp1as/bin/adshexec
- ジョブ定義スクリプトの内容
/opt/jp1as/bin/adshexec $HOME/script/test.ash
- 例3
-
- 環境ファイルの内容
#-adsh_conf CHILDJOB_PGM sh -x
- ジョブ定義スクリプトの内容
sh -x $HOME/script/test.ash
- 例4
-
- 環境ファイルの内容
#-adsh_conf CHILDJOB_PGM /usr/bin/env ksh
- ジョブ定義スクリプトの内容
/usr/bin/env ksh $HOME/script/test.ash