物理ディスク ファイル名は、UNIX シェル環境変数を使用して指定することができます。この方法は、方法 1 および 2 よりも優先されます。この方法では、同一アプリケーションのさまざまな呼び出しで使用される物理ディスク ファイルを容易に変えることができます。前述のいずれかの方法からの派生名にプレフィックス MF_ または DD_ を付けた名前の環境変数を使用してファイルの場所を指定するか、DCB_ddname 環境変数を使用できます。
参照ファイルの場所をハードコーディングするのではなく、参照ファイルの場所を指すように 1 つ以上の環境変数を設定できます。それぞれのファイルについて、方法 1 または方法 2 からの派生名にプレフィックス MF_ または DD_ を付けた名前の環境変数を設定します。
たとえば、次のコードでは、開いているファイルの場所が指定されていません。
dcl file data2 update;
dcl file specs output;
open file (data2);
open file (specs) title('report');
次の環境変数により、場所がプログラムに認識されます。
set MF_DATA2 /common/data set MF_REPORT /common/report
ファイル data2 の入出力操作は /common/data にアクセスし、ファイル specs の入出力は /common/report にアクセスします。
この例では、2 番目の open 文で title オプションが 'report' に設定され、ファイル名 specs がオーバーライドされているため、2 番目の環境変数の名前は MF_REPORT です。
| SYSIN | DD_STDIN を使用 |
| SYSPRINT | DD_STDOUT を使用 |
| SYSOUT | DD_STDOUT を使用 |
DCB_ddname 環境変数は、JCL がない場合のデータセットの特性の指定に使用します。各特性は、個々の値をスペースで区切った一連の値で表されます。
Windows:
set DCB_ddname type record-length format
UNIX/Linux:
export DCB_ddname type record-length format
たとえば、長さが 20 でファイル名が MUMBLY の FIXED LENGTH ファイルが RECORD の入出力で使用されている場合、環境変数の設定は次のようになります。
Windows:
set DCB_MUMBLY=RECORD 20 F
UNIX/Linux:
export DCB_MUMBLY=RECORD 20 F