JP1/Advanced Shell
ファイルを入出力する場合に定義した規則に従って,ジョブ定義スクリプトに指定したファイルパスを入出力の対象となるファイルパスに変換します。指定したファイルパスと入出力するファイルパスは,完全に一致させる必要があります。
WindowsまたはLinuxでファイルを入出力する場合に定義した環境ファイルの情報(PATH_CONV_ACCESSパラメーター)に従って,ジョブ定義スクリプトがファイルの入出力時にどのように変換されるかを以降に説明します。
- <この項の構成>
- (1) 環境ファイルの情報
- (2) 実行前のジョブ定義スクリプト
- (3) 実行時のジョブ定義スクリプト
- (4) ファイル入出力時のファイルパス変換の実行条件
- (5) PATH_CONVパラメーターとの組み合わせ例
(1) 環境ファイルの情報
環境ファイルの例を次に示します。
#-adsh_conf PATH_CONV_ENABLE / : #-adsh_conf PATH_CONV /tmp "D:\\tmp" #-adsh_conf PATH_CONV_ACCESS /dev/null nul
(2) 実行前のジョブ定義スクリプト
実行前のジョブ定義スクリプトの例を次に示します。
while read LOG do echo $LOG > /dev/null done < "D:\tmp\input.txt"
(3) 実行時のジョブ定義スクリプト
実行時には次のように解釈されて実行します。
while read LOG do echo $LOG > nul done < "D:\tmp\input.txt"
(4) ファイル入出力時のファイルパス変換の実行条件
ファイル入出力時のファイルパス変換では,ファイルへの入出力が発生するタイミングで該当するファイルパスと変換規則に指定されたファイルパスが完全に一致した場合,変換後のファイルパスに変換します。JP1/Advanced Shellでは,次のタイミングでファイルへの入出力が発生します。
- リダイレクト文字(<,>,<>,>>)でファイルへ入出力する※1
- .(ドット)コマンドでジョブ定義スクリプトを実行する※2
- #-adsh_scriptでジョブ定義スクリプトを実行する※2
- 注※1
- 次の項目については,指定したリダイレクト文字の指定に従って動作します。
- ファイルパスを変換したあとのファイルの有無
- ファイルを作成するかどうか
- ファイルに追加書き込みするかどうか
- ファイルを上書きするかどうか
- 注※2
- .コマンドおよび#-adsh_scriptコマンドの引数に指定されたジョブ定義スクリプトについても,入出力が発生します。しかし,これらのジョブ定義スクリプトは,ファイル入出力時のファイルパス変換では変換されません。変換する場合は,コマンド実行時に引数を変換するCOMMAND_CONV_ARGパラメーターで変換の定義規則を指定してください。
ファイル入出力時のファイルパス変換は,「2.6.2 パス名を変換する」で説明されているパス変換によって変換されたジョブ定義スクリプトの内容に対して実行されます。
ファイル入出力時のファイルパス変換は,次のプラットフォーム間で実行できます。
- 同じプラットフォーム間:UNIX→UNIX,Windows→Windows
- 異なるプラットフォーム間:UNIX→Windows,Windows→UNIX
例えば,UNIX環境を想定して作成されたジョブ定義スクリプトを,UNIXとWindowsの両方で実行できます。逆に,Windows環境を想定して作成されたジョブ定義スクリプトを,WindowsとUNIXの両方で実行できます。
(5) PATH_CONVパラメーターとの組み合わせ例
PATH_CONVパラメーターとPATH_CONV_ACCESSパラメーターを組み合わせて使用する例を示します。この2種類のパラメーターは,PATH_CONVパラメーターの方が優先的に処理されます。同じパラメーターの中では,先頭から順に処理されます。
(a) 環境ファイルの内容
環境ファイルの内容を,各行に番号を付けて示します。
- #-adsh_conf PATH_CONV_ENABLE / :
- #-adsh_conf PATH_CONV /tmp "C:\\temp"
- #-adsh_conf PATH_CONV_ACCESS /tmp/result.log "C:\\jp1as_tmp\\result3.log"
- #-adsh_conf PATH_CONV_ACCESS "C:\temp\result.log" "C:\\jp1as_tmp\\result4.log"
(b) ジョブ定義スクリプトファイルの内容と変換方法
(a)の環境ファイルに対して次のジョブ定義スクリプトを実行した場合,それぞれが異なる規則で変換されます。
- cat data.txt > "/tmp/result.log"
catコマンドに指定した"/tmp/result.log"が,"(ダブルクォーテーション)で囲まれているため,環境ファイルの内容の行番号2の規則に従って"C:\\temp\\result.log"に変換されます。そのため,行番号3の定義には合致しません。行番号4が定義に合致し,最終的に"C:\jp1as_tmp\result4.log"に変換されます。
- cat data2.txt > /tmp/result.log
catコマンドに指定した/tmp/result.logが,"(ダブルクォーテーション)で囲まれていないため,行番号2の定義には合致しません。行番号3の定義に合致し,"C:\jp1as_tmp\result3.log"に変換されます。
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.