5.9.6 実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す
#-adsh_scriptコマンドを使用して,外部のジョブ定義スクリプトファイルのJP1/Advanced Shell起動時点での内容を,現在実行中のジョブ定義スクリプトファイルに挿入します。
このコマンドはシェル標準コマンドの.コマンドとは異なって,JP1/Advanced Shell起動時点での外部スクリプトの内容を,呼び出し元のジョブ定義スクリプト内に展開します。呼び出し元のジョブ定義スクリプトと展開後のジョブ定義スクリプトは全体を1個のジョブ定義スクリプトとして構文解析し実行します。
外部スクリプトの定義と,呼び出し元ジョブ定義スクリプトの例を次に示します。
- /scripts/exScript.ash(ジョブ開始時点での内容)
#-adsh_step_start exS1
exUap01
#-adsh_step_end
#-adsh_step_start exS2
exUap01
#-adsh_step_end |
- script.ash
#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
uap01
#-adsh_script /scripts/exScript.ash
uap2 |
script.ashは,次のジョブ定義スクリプトと同等の内容です。
#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
uap01
#-adsh_step_start exS1 ←ここから6行がexScript.ashが展開された部分
exUap01
#-adsh_step_end
#-adsh_step_start exS2
exUap01
#-adsh_step_end
uap2 |
- <この項の構成>
- (1) 相対パスで指定する場合
- (2) 絶対パスで指定する場合
(1) 相対パスで指定する場合
外部スクリプトを相対パスで指定すると,先行ジョブ定義スクリプトの動作に関係なく,adshexec起動時のカレントディレクトリからのパスになります。
また,ほかのディレクトリからの相対パス指定はできません。その場合は,絶対パスで指定してください。
指定例を次に示します。
- adshexecコマンド起動時のカレントディレクトリ:/scripts
#/opt/jp1as/bin/adshexec
cd /work
#-adsh_script ex_script.ash ←/scripts/ex_script.ashが実行される |
- この例では,#-adsh_scriptコマンドで外部スクリプトファイル/scripts/ex_script.ashが実行されます。直前のcdコマンドでカレントディレクトリを移動していますが,呼び出す外部スクリプトファイルのパスには影響しません。
(2) 絶対パスで指定する場合
/work/ex_script.ashを実行したい場合は,次のように絶対パスで指定してください。
- adshexecコマンド起動時のカレントディレクトリ:/scripts
#/opt/jp1as/bin/adshexec
cd /work
#-adsh_script /work/ex_script.ash ←/work/ex_script.ashが実行される |