Hitachi

Advanced Shell 


2.6.4 コマンド実行時に引数を変換する

コマンド(シェル標準コマンド,シェル拡張コマンド,スクリプト拡張コマンド,スクリプト予約語コマンド,関数,および外部コマンド,ユーザープログラム)の実行時に,変換の定義に従ってコマンドの引数を変換します。この変換は,次のプラットフォーム間で実行できます。

ジョブ定義スクリプトの1行を定義された規則に従って解析し,指定された引数の文字列と実行するコマンドの引数の文字列が完全に一致した場合,置換後のコマンド引数の文字列に変換します。変換の定義規則は,COMMAND_CONV_ARGパラメーターで設定します。

〈この項の構成〉

(1) PATH_CONVパラメーターとCOMMAND_CONV_ARGパラメーターとの組み合わせ例

Windows版で,PATH_CONVパラメーターとCOMMAND_CONV_ARGパラメーターを組み合わせて使用する例を示します。この2種類のパラメーターは,PATH_CONVパラメーターの方が優先的に処理されます。同じパラメーターの中では,先頭から順に処理されます。

(a) 環境ファイルの内容

環境ファイルの内容を,各行に番号を付けて示します。

1.  #-adsh_conf PATH_CONV_ENABLE / :
2.  #-adsh_conf PATH_CONV /tmp "C:\\temp"
3.  #-adsh_conf COMMAND_CONV_ARG /tmp/data.txt "C:\\jp1as_tmp\\data3.txt"
4.  #-adsh_conf COMMAND_CONV_ARG "C:\temp\data.txt" "C:\\jp1as_tmp\\data4.txt"
5.  #-adsh_conf PATH_CONV_RULE 1

(b) ジョブ定義スクリプトファイルの内容と変換方法

(a)の環境ファイルに対して次のジョブ定義スクリプトを実行した場合,それぞれが異なる規則で変換されます。

cat "/tmp/data.txt" > ./result.log

この場合,PATH_CONV_RULEパラメーターは1が指定されていることから,"(ダブルクォーテーション)で囲まれた範囲がPATH_CONVパラメーターによって変換されます。

catコマンドに指定した"/tmp/data.txt"は"(ダブルクォーテーション)で囲まれているため,環境ファイルの内容の行番号2で"/tmp/data.txt"が"C:\\temp\\data.txt"に変換されます。その結果,行番号3の定義に合致しないで,行番号4の定義に合致し,最終的に"C:\\jp1as_tmp\\data4.txt"に変換されます。

cat /tmp/data.txt > ./result.log

この場合,catコマンドに指定した/tmp/result.logが,"(ダブルクォーテーション)で囲まれていないため,行番号2のPATH_CONVパラメーターの変換対象になりません。その結果,行番号3の定義に合致し, "C:\\jp1as_tmp\\data3.txt"に変換されます。