7.3.11 CMDSUB_PROCESSパラメーター(コマンド置換の実行プロセスを定義する)【 Windows 限定】
形式
#-adsh_conf CMDSUB_PROCESS {CURRENT | OTHER}
機能
コマンド置換の実行プロセスを定義します。
コマンド置換で変数の内容を更新しますが,コマンド置換実行前の内容をコマンド置換終了後に再利用したい場合は,OTHERを指定してください。
OTHERを指定した場合の例を次に示します(CBL_SYSUTはCBLUAPxの共通インターフェース用変数と仮定します)。
-
ジョブ定義スクリプトの内容
funcA(){ CBL_SYSUT=/file2 CBLUAP2 } CBL_SYSUT=/file1 VAL1=$(CBLUAP1) VAL2=$(funcA) VAL3=$(CBLUAP3)
この場合,CBLUAP1とCBLUAP3の実行時のシェル変数CBL_SYSUTには"/file1",CBLUAP2の実行時のシェル変数CBL_SYSUTには"/file2"が格納されています。
オペランド
- CURRENT
-
次に示すコマンドをコマンド置換に指定した場合に,コマンド置換をカレントプロセスで実行します。
-
シェル標準コマンド
-
代入式
-
スクリプト制御文
-
シェル拡張コマンド
-
スクリプト予約語コマンド
-
関数
上記以外の場合,別プロセスで動作します。また,データの受け渡しのために一時ファイルを使用します。
-
- OTHER
-
コマンド置換を別プロセスで実行します。
注意事項
-
システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ環境ファイルでの定義が有効になります。
-
このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエラーとなります。
-
OTHERを指定した場合,CURRENTに比べて実行時間が大きくなる場合があります。そのため,CURRENTからOTHERに切り替える際は,ジョブの実行時間を検証してください。なお,スクリプト開発部品やスクリプト形式のUNIX互換コマンドには,スクリプト内でコマンド置換を使用しているものがあります。スクリプト開発部品やスクリプト形式のUNIX互換コマンドを実行する場合は,実行時間の長大化を防ぐためにCURRENTを指定しておくことを推奨します。
-
次のすべての条件が重なった命令を記述すると,コマンド置換の実行結果を正しく得ることができない場合があります。
-
CMDSUB_PROCESSパラメーターにCURRENTを指定している。
-
コマンド置換処理の中でパイプを使用している。
-
パイプで繋がれた最後のコマンドをバックグラウンド実行している。
例: `cmd1 | { cmd2; cmd3 & }`
-