前へ | 次へ | 目次 | 索引 |
カード・リーダからバッチ・ジョブをキューに登録する際に, JOB カードに指定したユーザ名に対応するパスワードを与えます。 PASSWORD カードは省略できませんが,そのアカウントが空文字列のパスワードを持つ場合には,カード上のパスワードは省略できます。PASSWORD コマンドは,カード・リーダからジョブをキューに登録する場合にのみ有効です。カード上の PASSSWORD コマンドの前には,ドル記号($) が必要です。
PASSWORD [パスワード]
パスワードを変更する場合は,SET PASSWORD コマンドを使用します。 SET PASSWORD コマンドについて詳細は,SET PASSWORD の説明を参照してください。 |
パスワード
JOB コマンドに指定されているユーザ名に対応するパスワードを指定します。パスワード・パラメータは,1 文字から 31 文字までの長さです。空文字列のパスワードを持つアカウントから,ジョブをキユーに登録する場合には, PASSWORD カード上のパスワードは省略します。
PASSWORD コマンドは,JOB コマンドとともに使用されます。 JOB カードはカード・リーダからバッチ・ジョブをキューに登録したユーザを識別します。その後,パスワードを与える PASSWORD コマンドを実行します。ここで指定したパスワードが,JOB カードでのユーザ名に対応するパスワードと一致するかどうか,システムがチェックします。パスワードが一致しない場合,ジョブは拒否されます。PASSWORD カードを使用する時に他のユーザにパスワードを見られないように, PASSWORD カードに最初に穴を開ける時,プリンティングを抑止したい場合もあります。
#1 |
---|
|
JOB および PASSWORD コマンドを実行してから,カード・リーダからバッチ・ジョブをキューに登録しています。 EOJ コマンドは,ジョブの終了を示します。
VAX システムで,実行可能イメージ,共用可能イメージ,デバイス・ドライバ・イメージにパッチを行う Patch ユーティリティを起動します。Patch ユーティリティについての詳細は,『OpenVMS VAX Patch Utility Manual』 ( ドキュメンテーション CD-ROM に用意されています ),またはオンライン・ヘルプを参照してください。
PATCH ファイル指定
Phone ユーティリティを起動します。Phone ユーティリティを使用すると,同一システム上の他のユーザ,または DECnet-Plus か DECnet for OpenVMS により使用しているシステムに接続している他のシステムのユーザと通信することができます。Phone ユーティリティについての詳細は,『OpenVMS ユーザーズ・マニュアル』またはオンライン・ヘルプを参照してください。
PHONE [phoneコマンド]
同じコマンド行から,1 つまたは複数の DCL コマンド文字列を実行します。 PIPE コマンドを使用すると,コマンド・パイプライン動作,入出力リダイレクト,および条件付きバックグラウンド実行など, UNIX スタイルのコマンド処理を実行できます。
PIPE コマンド・シーケンス [区切り文字 コマンド・シーケンス]...
コマンド・シーケンス
DCL コマンド,パイプライン,またはサブシェルを指定します。
- DCL コマンド
修飾子,パラメータ,キーワード,および値を入れることができるDCLコマンド文字列- パイプライン
パイプラインは,縦線 (|) 区切り文字で表される パイプ で接続されたパイプライン・セグメント・コマンドのシーケンスです。パイプライン・セグメント・コマンドとは,パイプライン内の DCL コマンドです。パイプは,あるパイプライン・セグメント・コマンドの SYS$OUTPUT を,次のパイプライン・セグメント・コマンドの SYS$INPUT に接続します。パイプラインの形式は,次のとおりです。
パイプライン・セグメント・コマンド | パイプライン・セグメント・コマンド [ |...]
- サブシェル
サブシェルは,区切り文字で区切られ,括弧で囲まれた 1 つまたは複数のコマンド・シーケンスです。サブシェルの形式は,次のとおりです。
(コマンド・シーケンス [区切り文字 コマンド・シーケンス]...)
コマンド・シーケンスでは,入出力をリダイレクトできます。山括弧 (>または<) の前にあるコマンドは,実行中,SYS$INPUT,SYS$OUTPUT,または SYS$ERROR を再定義します。 PIPE コマンドでは山括弧が入出力リダイレクト構文と解釈されるため, PIPE コマンドでディレクトリ指定を表すために山括弧 (<>) を使用することはできません。
区切り文字
PIPE コマンドで指定されたコマンド・シーケンスが処理する動作を決定します。有効な PIPE 区切り文字を 表 DCLII-14 に示します。
表 DCLII-14 PIPEコマンドの区切り文字 区切り
文字動作 | 基本的なパイプの区切り文字。パイプは,あるパイプライン・セグメント・コマンドの SYS$OUTPUT を,次のパイプライン・セグメント・コマンドの SYS$INPUT に接続します。 ; 順次実行。セミコロン (;) の後のコマンド・シーケンスは,先行するコマンド・シーケンスの終了後に実行されます。この区切り文字の前には,空白を入れなければなりません。空白を入れないと,レコード管理システム (RMS) ファイル指定のバージョン番号区切り文字として解析されます。 && 条件付き実行 (成功時)。 2 個のアンパサンド (&&) の後のコマンド・シーケンスは,先行するコマンド・シーケンスが成功した場合にだけ実行されます。 || 条件付き実行 (失敗時)。 2 個の縦線 (||) の後のコマンド・シーケンスは,先行するコマンド・シーケンスが失敗した場合にだけ実行されます。 & バックグラウンド実行。アンパサンド (&) に先行するすべてのコマンド・シーケンスが,サブプロセス環境で非同期に実行されます。 &区切り文字は,SPAWN/NOWAIT コマンドに似ています。 注意:スペースをはさまずに文字列に先行するアンパサンドは,バックグラウンド実行構文でなく,従来の DCL シンボル置換式として解析されます。
@TEE コマンド・ファイル TEE.COM。出力を 2 つのターゲットにリダイレクトするために使用されます ( たとえば,1 つの出力をパイプラインの次のコマンドにリダイレクトし,もう 1 つをファイルにリダイレクトする場合など )。 TEE.COM の使用法については,例を参照してください。
PIPE コマンド行では,& が最高優先順位を持ち,"|",";","&&",および "||" が同じ優先順位でそれに続きます。
PIPE コマンドを使用すると,単一のコマンド行で複数の DCL コマンドを実行して, UNIX スタイルのコマンド処理を実行できます。 PIPE コマンドを使用すると,以下の方法で DCL コマンドを実行することができます。
- 複数コマンド実行
複数の DCL コマンドを単一の PIPE コマンドに指定して,順次実行します。複数コマンド実行の構文は,次のとおりです。
PIPE コマンド・シーケンス ; コマンド・シーケンス [; コマンド・シーケンス]...
- 条件付きコマンド実行
コマンド・シーケンスは,先行するコマンド・シーケンスの実行結果に応じて,条件付きで実行されます。
次の形式を使用すると,コマンド・シーケンス 1 が成功した場合のみ,コマンド・シーケンス 2 が実行されます。
PIPE コマンド・シーケンス1 && コマンド・シーケンス2
次の形式を使用すると,コマンド・シーケンス 1 が失敗した場合のみ,コマンド・シーケンス 2 は実行されます。
PIPE コマンド・シーケンス1 || コマンド・シーケンス2
- パイプライン・コマンド実行
パイプラインは,次のように DCL コマンドをパイプで接続して構成されます。
PIPE パイプライン・セグメント・コマンド | パイプライン・セグメント・コマンド [|...]
各パイプライン・セグメント・コマンドは, SYS$OUTPUT を次のパイプライン・セグメント・コマンドの SYS$INPUT に接続し,別々のサブプロセスで実行されます。これらのサブプロセスは,パラレルに実行されます。ただし,最初のパイプライン・セグメント・コマンドを除く各パイプライン・セグメント・コマンドが,その先行パイプライン・セグメント・コマンドの標準出力をその標準入力として読み込むという意味で同期化されます。パイプラインは,最後のパイプライン・セグメント・コマンドが終了すると,実行を終了します。
通常,パイプラインでは,「フィルタ・アプリケーション」を使用します。フィルタ・アプリケーションとは,SYS$INPUT からのデータを取り,特定の方法でデータを変換し,SYS$OUTPUT に書き込むプログラムのことです。- サブシェル実行
次のサブシェル実行形式を使用して,コマンド・シーケンスをサブプロセス環境で実行できます。
PIPE ( コマンド・シーケンス [区切り文字 コマンド・シーケンス]... )
サブシェル内のコマンド・シーケンスは,サブプロセス環境で実行されます。 DCL は,サブシェルが終了してから,次のコマンド・シーケンスを実行します。 ( ) 区切り文字は,SPAWN/WAIT コマンドに似ています。- バックグラウンド実行
コマンド・シーケンスは,次の形式を使用して,サブプロセス環境で実行できます。
PIPE コマンド・シーケンス [ 区切り文字 コマンド・シーケンス]... &
DCL は,コマンド・シーケンスの終了を待ちません。バックグラウンド・サブプロセスが作成されると,制御は DCL に戻ります。- 入出力リダイレクト
コマンド・シーケンスは,次のようにコマンドの実行中に,SYS$INPUT, SYS$OUTPUT,または SYS$ERROR をファイルにリダイレクトできます。
SYS$INPUT をリダイレクトするには,次のように実行します。
PIPE コマンド・シーケンス < リダイレクトする入力ファイル
SYS$OUTPUTをリダイレクトするには,次のように実行します。
PIPE コマンド・シーケンス > リダイレクトする出力ファイル
SYS$ERRORをリダイレクトするには,次のように実行します。
PIPE コマンド・シーケンス 2 > リダイレクトするエラー・ファイル
パイプライン・セグメント・コマンドも,SYS$INPUT,SYS$OUTPUT,または SYS$ERROR をリダイレクトできます。ただし, SYS$OUTPUT リダイレクトは最後のパイプライン・セグメント・コマンドだけに使用でき,SYS$INPUT リダイレクトは最初のパイプライン・セグメント・コマンドだけに使用できます。
Ctrl/Y を押すと,PIPE コマンドに割り込みをかけることができます。 PIPE コマンドがパイプラインまたはサブシェル・コマンド・シーケンスを実行していると,コマンド・シーケンスおよび PIPE コマンドは削除されます。この場合,割り込み直後に CONTINUE コマンドを入力しても, PIPE コマンドの実行は再開されません。
PIPE コマンドが,サブシェルまたはパイプライン・コマンド・シーケンス以外のコマンド・シーケンスを実行していた場合, DCL は,コマンド・シーケンスが PIPE コマンド動詞なしで入力され, Ctrl/Y で割り込みをかけられたように動作します。 Ctrl/Y 割り込みについての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。
各コマンド・シーケンスは,実行を終了すると,グローバル・シンボル $STATUS に戻り値を設定します。 PIPE コマンドの戻り状態は,最後のセグメントで 最後に実行されたコマンド・シーケンスの戻り状態です。したがって,すべてのセグメントがエラーのために失敗しても,最後のセグメントが正常終了すれば, DCL には正常終了の状態が戻されます。
PIPE コマンドを ON 条件処理でコマンド・プロシージャで実行すると,コマンド・シーケンスの条件付き実行 (&&, ||) は,先に ON 条件文で指定された動作より優先します。
PIPE コマンドは,そのコマンド・シーケンス用に特殊な実行コンテキストを作成します。一部の DCL コマンドは,このコンテキストで動作しないか,新しい動作を示します。次に,そのコマンドを示します。
- PIPE --- 同じコマンド・プロシージャ・レベルでは, PIPE コマンドをネストできません。コマンド・プロシージャ・レベルごとに, 1 つの PIPE コマンド・コンテキストだけが使用できます。ただし,異なるプロシージャ・レベルでは,PIPE コマンドをネストできます。次に例を示します。
$ TYPE FOO.COM $ ! FOO.COM $ : $ PIPE ... $ : $ $ PIPE @FOO.COM ; ...
この例で,FOO.COM の内側にある PIPE コマンドは,異なるコマンド・プロシージャ・レベルで実行されるので使用できます。- GOTO および EXIT --- この 2 つのコマンドは, PIPE コマンド・シーケンスとして実行すると,GOTO または EXIT コマンドが実行される前に PIPE コマンド・コンテキストを削除します。 PIPE コマンドでこの 2 つのコマンドに続くコマンド・シーケンスは,フラッシュされます。
- STOP --- STOP コマンドは, PIPE コマンドを Ctrl/Y で割り込んでから実行すると, PIPE コマンド・コンテキストを削除します。
- THEN,ELSE,ENDIF,SUBROUTINE,ENDSUBROUTINE,RETURN,および DCL ラベル --- これらのコマンドは, PIPE コマンド・コンテキストでその関数を認識できないため, PIPE コマンド・シーケンスとして実行できません。
PIPE コマンドは,実行中に多数のサブプロセスを作成できます。通常,コマンド・シーケンスで起動されるアプリケーションは,プロセスの論理名とシンボル名に依存しません。この場合,/NOLOGICAL_NAMES および /NOSYMBOLS 修飾子を使用すると,サブプロセスを素早く作成できます。この修飾子により,プロセスの論理名とシンボルは, PIPE コマンドで作成されたサブプロセスに渡されなくなります。
DCL のユーザは,DEFINE または ASSIGN コマンドを使用して,SYS$INPUT, SYS$OUTPUT,または SYS$ERROR をリダイレクトできます。このようなリダイレクトは,ユーザ・モード (/USER_MODE 修飾子を使用 ) またはスーパーバイザ・モード (/SUPERVISOR_MODE 修飾子を使用 ) のリダイレクトとして実行できます。ユーザ・モード・リダイレクトは,次のユーザ・モード・イメージの環境だけに影響します。
PIPE コマンドでは,リダイレクトは,リダイレクト構文を使用して実行できます。 PIPE コマンドのリダイレクトは,次のように, DEFINE または ASSIGN コマンドで生成されるリダイレクトとはまったく違います。
- リダイレクトは,スーパーバイザ・モードで生成されます。つまり,ユーザ・モード・アプリケーションと DCL コマンドの両方が,リダイレクトに影響されます。
- リダイレクトされた環境は,リダイレクト構文を指定するコマンド・シーケンスまたはパイプライン・セグメント・コマンドだけに適用されます。コマンド・シーケンスまたはパイプライン・セグメント・コマンドの実行後,元のプロセスの入出力環境 (SYS$INPUT,SYS$OUTPUT,および SYS$ERROR) が,コマンドの実行が続行される前に復元されます。
SYS$OUTPUT をリダイレクトすると,コマンド・シーケンスが実際に SYS$OUTPUT に書き込むかどうかにかかわらず,常にリダイレクトされた出力ファイルが作成されます。リダイレクトされた出力ファイルと同じ名前を持つファイルのバージョンがすでに存在する場合,そのファイルの新しいバージョンが作成されます。この動作は,スーパーバイザ・モードで DEFINE または ASSIGN コマンドを使用して, SYS$OUTPUT を再定義する場合と同じです。リダイレクトされたファイルは,コマンド・シーケンスが実行される前に作成されることに注意してください。次の例のように,リダイレクトされたファイルがコマンド・シーケンスでも使用される場合は,操作が失敗することがあります。
$ PIPE SEARCH TRANS.LOG "alpha" > TRANS.LOG %SEARCH-W-OPENIN, error opening TRANS.LOG;2 as input -RMS-E-FLK, file currently locked by another user
この例では,新しいバージョンの TRANS.LOG が作成され,書き込みアクセス用にオープンされます。次に,SEARCH コマンドが,前のバージョンでなく,最新バージョンの TRANS.LOG の読み込みアクセスを獲得しようとします。
SYS$ERROR をリダイレクトすると,リダイレクトされたエラー・ファイルは,コマンド・シーケンスが実行中に実際に SYS$ERROR に書き込む場合にだけ作成され,リダイレクトされたエラー・ファイルと同じ名前を持つファイルは,はじめからは存在しません。リダイレクトされたエラー・ファイルと同じ名前を持つファイルがすでに存在する場合は,そのファイルがリダイレクトされたエラー・ファイルとしてオープンされます。次に,このコマンド・シーケンスで作成されたエラー出力が,リダイレクトされたエラー・ファイルの最後に追加されます。この動作は,スーパーバイザ・モードで DEFINE または ASSIGN コマンドを使用して, SYS$ERROR を再定義する場合と同じです。
この節では,パイプラインのコンテキストで一部異なる DCL の機能について説明します。
次の構造のいくつかは,TEE を実現するために使用されます。
サブプロセスの SYS$COMMAND は,通常,その SYS$INPUT( コマンド・プロシージャが関係しない場合 ) と同じです。ただしパイプラインでは,サブプロセスの SYS$COMMAND は,先行するパイプ (パイプライン・セグメント・コマンドの SYS$INPUT) でなく,親プロセスの SYS$COMMAND に設定されます。
ほとんどの場合,パイプからの入力は,SYS$INPUT からデータを読み込むことにより取得できます。ただし,コマンド・プロシージャがパイプライン・セグメント・コマンドとして起動される場合は, SYS$INPUT はコマンド・プロシージャ・ファイルにリダイレクトされます。コマンド・プロシージャの中でパイプからデータを取得するには,論理名 SYS$PIPE を使用できます。
次に,パイプライン DCL アプリケーション例 TEE.COM を示します。
$ ! TEE.COM - command procedure to display/log data flowing through $ ! a pipeline $ ! Usage: @TEE log-file $ $ OPEN/WRITE tee_file 'P1' $ LOOP: $ READ/END_OF_FILE=EXIT SYS$PIPE LINE $ WRITE SYS$OUTPUT LINE ! Send it out to the next stage of the pipeline $ WRITE tee_file LINE ! Log output to the log file $ GOTO LOOP $ EXIT: $ CLOSE tee_file $ EXIT
TEE.COM を使用するPIPEコマンドは,次のようになります。
$ PIPE SHOW SYSTEM | @TEE showsys.log | SEARCH SYS$INPUT LEF
コマンド・プロシージャ TEE.COM は,パイプラインを流れるデータを記録します。データは,SYS$INPUT でなく,SYS$PIPE から読み込まれます。
パイプラインでは, PIPE コマンドを入力する前に SET VERIFY=IMAGE コマンドを実行した場合でも,省略時の設定でイメージ・チェックはオフになっています。これにより,データ・レコードが,重複してパイプラインを通過しないようになります。
前へ 次へ 目次 索引