# Compaq OpenVMS
DCL ディクショナリ

前へ | 次へ | 目次 | 索引

# PASSWORD

> カード・リーダからバッチ・ジョブをキューに登録する際に， 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 コマンドは，ジョブの終了を示します。

# PATCH (VAX のみ)

> VAX システムで，実行可能イメージ，共用可能イメージ，デバイス・ドライバ・イメージにパッチを行う Patch ユーティリティを起動します。

> Patch ユーティリティについての詳細は，『OpenVMS VAX Patch Utility Manual』 ( ドキュメンテーション CD-ROM に用意されています )，またはオンライン・ヘルプを参照してください。

## 形式

> PATCH ファイル指定

# PHONE

> Phone ユーティリティを起動します。 Phone ユーティリティを使用すると，同一システム上の他のユーザ，または DECnet for OpenVMS により使用しているシステムに接続している他のシステムのユーザと通信することができます。

> Phone ユーティリティについての詳細は，『Compaq OpenVMS ユーザーズ・マニュアル』またはオンライン・ヘルプを参照してください。

## 形式

> PHONE [phoneコマンド]

# PIPE

> 同じコマンド行から，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割り込みについての詳細は，『Compaq OpenVMS ユーザーズ・マニュアル』を参照してください。

> PIPEコマンドの戻り状態は，最後に実行されたコマンド・シーケンスの戻り状態です。各コマンド・シーケンスは，実行を終了すると，グローバル・シンボル$STATUSに戻り値を設定します。

> PIPEコマンドをON条件処理でコマンド・プロシージャで実行すると，コマンド・シーケンスの条件付き実行(&&, ||)は，先にON条件文で指定された動作より優先します。

> DCLコマンドの制限事項

> 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を再定義する場合と同じです。

> パイプラインおよび TEE

> この節では，パイプラインのコンテキストで一部異なる DCL の機能について説明します。

> 次の構造のいくつかは，TEE を実現するために使用されます。

> SYS$COMMANDの使用方法

> サブプロセスのSYS$COMMANDは，通常，そのSYS$INPUT(コマンド・プロシージャが関係しない場合)と同じです。ただしパイプラインでは，サブプロセスのSYS$COMMANDは，先行するパイプ(パイプライン・セグメント・コマンドのSYS$INPUT)でなく，親プロセスのSYS$COMMANDに設定されます。

> TEE および SYS$PIPEの使用方法

> ほとんどの場合，パイプからの入力は， 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コマンドを実行した場合でも，省略時の設定でイメージ・チェックはオフになっています。これにより，データ・レコードが，重複してパイプラインを通過しないようになります。

> パイプラインでのイメージ・チェックをオンにするには，パイプライン・セグメント・コマンドの前に明示的に SET VERIFY=IMAGEコマンドを使用しなければなりません。この場合は，次のようにサブシェルを使用できます。

>     $ PIPE ... | (SET VERIFY=IMAGE ; ...)  | ...

> パイプラインでのファイル・アクセス方法

> パイプライン・セグメント・コマンドは，パイプとの読み込みと書き込みに， RMS順編成ファイル・アクセス方法しか使用できません。一部のOpenVMSユーティリティは，順次アクセス以外の方法を使用して，入力ファイルと出力ファイルにアクセスすることがあります。これらの操作は，パイプラインではサポートされていないので失敗します。次の例を参照してください。

>     $ PIPE CC/NOOBJ/NOLIS TEST.C | SEARCH SYS$INPUT -
>     _$ /WIND=(1,1) "%cc-w-"

>     %SEARCH-F-RFAERR, RMS error using RFA access
>     -RMS-F-RAC, invalid record access mode

> この例で，SEARCHコマンドの/WINDOW修飾子には，相対編成ファイル・アクセス方法が必要です。

前へ | 次へ | 目次 | 索引