BPXBATCH - シェル・コマンド、シェル・スクリプト、または実行可能ファイルを実行する

形式

BPXBATCH SH  [program_name] | PGM program_name

ここで program_name は、SH に渡されるオプション・パラメーター、 または、PGM が使用されるときの必須パラメーターです。

説明

BPXBATCH を使用すると、TSO/E セッションから、z/OS® UNIX ファイルに常駐するシェル・スクリプトまたは z/OS XL C/C++ 実行可能ファイルを簡単に実行できるようになります。ファイルにあるシェル・スクリプトおよび実行可能ファイルを、ジョブ制御言語 (JCL) を用いて実行するときに BPXBATCH を使用する方法については、BPXBATCH を参照してください。

BPXBATCH では、stdin を、入力を渡すための z/OS UNIX ファイルとして 割り当てることができます。stdout、stderr、または stdenv を MVS™ データ・セットまたは z/OS UNIX テキスト・ファイルとして割り当てることができます。 環境変数を格納する stdenv ファイル、またはジョブ出力を保存するための stderr ファイルと stdout ファイルは、SYSOUT、PDSE、PDS、または順次データ・セットとして割り当てることができます。このファイ ルを割り当てないと、stdin、stdout、stderr および stdenv はデフォルトで /dev/null になります。stdenv、stdout および stderr のための標準ファイルは、データ定義 PATH キーワード・オプションまたは MVS データ・セットの 標準データ定義オプションを使用して割り当ててください。

注: STDIN DD に関連付けられているファイル内のデータ・ストリームは、ファイル記述子 0 を介してターゲット・シェル・プログラム (SH を指定した場合) またはターゲット z/OS UNIX プログラム (PGM を指定した場合) への入力として提供されます。これは、従来の UNIX 標準入力 (stdin) です。次に、このデータは、シェルまたは指定のプログラムによって読み取られ、処理されます。BPXBATCH 自体は、ファイル内のデータに何も行いません。
複数のコマンドを使用して BPXBATCH 構文を表示するには、次のいずれかを使用してください。
BPXBATCH SH
PXBATCH SH [program_name]
PXBATCH PGM program_name

BPXBATCH を使用するだけでなく、環境設定に関与せずに (すなわち、ユーザ ーのプロファイルで設定されている場合に、変更することができる特定の 環境変数を設定しなくても済む) ローカル spawn を実行したいユーザーは、BPXBATSL を使用することができます。BPXBATCH への代替エントリー・ポイントが提供さ れ、BPXBATCH と同様にプログラムは fork/EXEC ではなくローカル spawn を 使用して強制的に実行されます。これにより、プログラムは最終的には さらに速く実行されることになります。

以下の例は、BPXBATSL から制御を与えられたプログラムがアクセス できる DD ステートメントを含んでいます。
//jobname JOB ...                                                         
                                                                          
//stepname EXEC PGM=BPXBATSL,PARM='PGM program_name'                   
/* The following 2 DDs are still available in the program which gets
/* control from BPXBATSL.
//DD1       DD DSN=MVSDSN.FOR.APPL1,DISP=SHR        
//DD2       DD DSN=MVSDSN.FOR.APPL2,DISP=SHR
/* The following DDs are processed by BPXBATSL to create file descriptors
/* for stdin, stdout, stderr 
//STDIN   DD  PATH='/stdin-file-pathname',PATHOPTS=(ORDONLY)              
//STDOUT  DD  PATH='/stdout-file-pathname',PATHOPTS=(OWRONLY,OCREAT,OTRUNC
//            PATHMODE=SIRWXU                                             
//STDERR  DD  PATH='/stderr-file-pathname',PATHOPTS=(OWRONLY,OCREAT,OTRUNC
//            PATHMODE=SIRWXU

ユーザーが自分のプログラムのローカル spawn を実行したいけれども、後続の子プロセスに対して fork/EXEC が実行される必要があるような場合に も、BPXBATSL は役立ちます。以前は、BPXBATCH ではこれを行うことができませんでした。それは、BPXBATCH と要求されたプログラムが同じ環境変数を共用したためです。

BPXBATSL は BPXBATCH の別名です。

BPXBATA2 および BPXBATA8 は、APF に認可された BPXBATSL の代替手段として提供されます。ターゲットの APF 認可 z/OS UNIX プログラムを発信ジョブと同じアドレス・スペースで実行できる機能を提供するため、同じ割り振りおよびジョブ・ログなどを共用できます。BPXBATA2 は、特に PSW キー 2 APF 許可 z/OS UNIX プログラムを開始する機能を提供することを目的としています。ターゲット・プログラムが制御 PSW キー 2 を確実に受け取るように、BPXBATA2 が PSW キー 2 を始動することを指定する BPXBATA2 の PPT 項目をセットアップする必要があります。 以下の制約事項に加えて、BPXBATSL に適用されるものと同じ制約事項が BPXBATA2 および BPXBATA8 にも適用されます。
  • PGM キーワードは、サポートされる唯一の呼び出しタイプです。SH キーワードは、サポートされていません。
  • インターフェースは、開始タスク・アドレス・スペースからしか使用できません。
  • BPXBATA2 および BPXBATA8 ジョブのターゲットである z/OS UNIX プログラムを、APF 認可実行可能ファイルとしてマークする必要があります。
BPXBATA8 および BPXBATA2 インターフェースを異なる方法で使用するのは、サポートされず、呼び出すジョブが失敗する原因となります。

パラメーター

SH|PGM
BPXBATCH が、z/OS UNIX ファイルにあるシェル・スクリプトまたはコマンド、あるいは z/OS C/C++ 実行可能ファイルのどれを実行するかを指定します。
SH または PGM のどちらも指定しないと、BPXBATCH は、stdin に よって割り当てられたシェル・スクリプトを実行するためにシェルが開始しよ うとしているとみなします。
SH
シェルを開始し、stdin または指定した program_name から提供される シェル・コマンドまたはスクリプトを実行するよう BPXBATCH に指示します。 BPXBATCH は、引数データ (含まれているブランクもそのまま) をすべて、1 つのパラメーターとしてシェルに受け渡します。
BPXBATCH PARM='SH command string'

SH の指定に program_name の情報がない場合、BPXBATCH は stdin から読み込まれたものは何でも実行しようとします。

SH はデフォルトです。

PGM
指定された program_name を呼び出されたプログラムとして実行するよう BPXBATCH に指示します。これは、spawn または fork/exec のいずれかを使用して実行されます。BPXBATCH は、プログラムを実行するためのプロセスを作成し、次にプログラムを呼び出します。 BPXBATCH は、 ターゲット・プログラムに受け渡された 1 つ以上のブランクで分離された各引数からブランクを取り外して、 複数のパラメーターに分けます。
BPXBATCH PARM='PGM arg1 ... argn'

規則: PGM を指定する場合は、program_name も指定する必要があります。

stdenv から読み込まれたすべての環境変数は、stdenv が割り当て済みであれば、プログラムが実行されるときに設定されます。HOME および LOGNAME 環境変数が stdenv ファイル内に指定されていない場合、または stdenv が 割り当てられていない場合、可能であれば、HOME および LOGNAME はプログラムが実行されたときに設定されます。

制約事項: PGM を使用する場合、program_name パラメーターにシェル固有の機能を含むことはできません。理由は、その機能を解決できないからです。シェル固有の機能を指定する必要がある場合、SH を使用してエラー発生の可能性の防止と 予期できない結果の防止を行う必要があります。

program_name
実行させたいシェル・スクリプトまたは z/OS XL C/C++ 実行可能ファイルのシェル・コマンド名またはパス名を指定します。program_name は、オプション 情報も含むことができます。program_name は、大文字と小文字で構成されていなければなりません。

PGM および program_name が指定されていて、指定のプログラム名がスラッシュ文 字 (/) で始まっていない場合、BPXBATCH は、ユーザーの初期作業ディレクトリー 情報をプログラム・パス名の前に付けます。

program_name で指定されたプログラムに渡される引数は、PGM にパラメーターとして渡されるプログラムによって決められます。 プログラムに渡される引数について詳しくは、プログラムの資料を参照してください。

  1. stdin で指定するシェル・スクリプトを実行したい場合。
    ALLOCATE FILE(STDIN) PATH('/stdin_file_pathname')
    PATHOPTS(ORDONLY)
    BPXBATCH SH
  2. プログラム /usr/bin/payroll を実行 したい場合。
    BPXBATCH PGM /usr/bin/payroll
  3. スクリプト shellscriptA を実行し、その出力を一時ディレクトリーのファイル a.out に出したい場合。
    BPXBATCH SH /u/usr/joe/shellscriptA > /tmp/a.out