USS(Unix System Service)からMVSデータセットを参照する

備忘録:USS(UNIX System Service)シェルからMVSデータセットを指定するための書式。

DSNAME指定の場合

cat "//'dsname'"
cat "//'dsname(member)'"

DDNAME指定の場合(バッチ環境)

cat "//DD:ddname"

DD名指定をする場合は、BPXBATCHではなくBPXBATSLジョブを実行する。BPXBATCHではUSSシェルが別空間のプロセスとしてforkされるが、BPXBATSLでは同じ空間内にspawnされる。そのため、ジョブと同じアドレス空間内で実行されることになり、JCLに定義したDDステートメントを参照できる。なお、シェルを起動するためにBPXBATSLを使用するには、OMVSセグメントにUID=0を与える必要がある(USSコマンド解説書:付録D. MVS 環境下でのシェル・スクリプトまたは実行可能ファイルの実行)

MVSデータセットの参照は、catやcp等の提供済みのシェル・コマンドでは有効だが全てのコマンドやプログラムで有効に働くとは限らない。例えば、javacはソース・プログラム・ファイル名としてMVSデータセットを指定しても受け付けない。