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 ユーティリティについての詳細は,『OpenVMS ユーザーズ・マニュアル』またはオンライン・ヘルプを参照してください。


形式

PHONE [phoneコマンド]


PIPE

同じコマンド行から,1 つまたは複数の DCL コマンド文字列を実行します。 PIPE コマンドを使用すると,コマンド・パイプライン動作,入出力リダイレクト,および条件付きバックグラウンド実行など, UNIX スタイルのコマンド処理を実行できます。

形式

PIPE コマンド・シーケンス   [区切り文字   コマンド・シーケンス]...


パラメータ

コマンド・シーケンス

DCL コマンド,パイプライン,またはサブシェルを指定します。

コマンド・シーケンスでは,入出力をリダイレクトできます。山括弧 (>または<) の前にあるコマンドは,実行中,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 コマンドを実行することができます。

Ctrl/Y を押すと,PIPE コマンドに割り込みをかけることができます。 PIPE コマンドがパイプラインまたはサブシェル・コマンド・シーケンスを実行していると,コマンド・シーケンスおよび PIPE コマンドは削除されます。この場合,割り込み直後に CONTINUE コマンドを入力しても, PIPE コマンドの実行は再開されません。

PIPE コマンドが,サブシェルまたはパイプライン・コマンド・シーケンス以外のコマンド・シーケンスを実行していた場合, DCL は,コマンド・シーケンスが PIPE コマンド動詞なしで入力され, Ctrl/Y で割り込みをかけられたように動作します。 Ctrl/Y 割り込みについての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。

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

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

DCLコマンドの制限事項

PIPE コマンドは,そのコマンド・シーケンス用に特殊な実行コンテキストを作成します。一部の DCL コマンドは,このコンテキストで動作しないか,新しい動作を示します。次に,そのコマンドを示します。

サブプロセスの性能改善

PIPE コマンドは,実行中に多数のサブプロセスを作成できます。通常,コマンド・シーケンスで起動されるアプリケーションは,プロセスの論理名とシンボル名に依存しません。この場合,/NOLOGICAL_NAMES および /NOSYMBOLS 修飾子を使用すると,サブプロセスを素早く作成できます。この修飾子により,プロセスの論理名とシンボルは, PIPE コマンドで作成されたサブプロセスに渡されなくなります。

入出力リダイレクト

DCL のユーザは,DEFINE または ASSIGN コマンドを使用して,SYS$INPUT, SYS$OUTPUT,または SYS$ERROR をリダイレクトできます。このようなリダイレクトは,ユーザ・モード (/USER_MODE 修飾子を使用 ) またはスーパーバイザ・モード (/SUPERVISOR_MODE 修飾子を使用 ) のリダイレクトとして実行できます。ユーザ・モード・リダイレクトは,次のユーザ・モード・イメージの環境だけに影響します。

PIPE コマンドでは,リダイレクトは,リダイレクト構文を使用して実行できます。 PIPE コマンドのリダイレクトは,次のように, DEFINE または ASSIGN コマンドで生成されるリダイレクトとはまったく違います。

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 修飾子には,相対編成ファイル・アクセス方法が必要です。


修飾子

/LOGICAL_NAMES(省略時)

/NOLOGICAL_NAMES

プロセスの論理名と論理名テーブルを,コマンド・シーケンスのサブプロセスにコピーします。省略時の設定では,明示的に CONFINE のマークが付いたものとエグゼクティブ・モードまたはカーネル・モードで作成されたものを除き,すべてのプロセス論理名と論理名テーブルがサブプロセスにコピーされます。

/PRIVILEGES={CURRENT|AUTHORIZED}

サブプロセスが,現在のプロセスの現在の特権と許可されている特権のどちらを,許可された特権として継承するかを決定します。省略時の設定では,サブプロセスの許可された特権マスクは,作成者の現在の特権から継承されます。これは,/PRIVILEGES=CURRENT に対応します。 /PRIVILEGES=AUTHORIZED 修飾子を指定すると,サブプロセスの許可された特権は,作成者の許可された特権から継承されます。

/SYMBOLS(省略時)

/NOSYMBOLS

($RESTART,$SEVERITY,および $STATUSを除く ) グローバル・シンボルとローカル・シンボルを,サブプロセスへ渡すかどうかを指定します。 $RESTART,$SEVERITY,および $STATUS シンボルは,サブプロセスに渡されません。

/TRUSTED

/NOTRUSTED

PIPE コマンドの入力が,信用できるコマンド・プロシージャから行われることを指定します。 PIPE コマンドは,CAPTIVE アカウントでは使用できません。 /TRUSTED 修飾子は,コマンドの入力がキャプティブ・コマンド・プロシージャ内の信用できる場所で行われる場合,正しくコーディングされたキャプティブ・コマンド・プロシージャが, PIPE 操作を実行する方法を提供します。信用できるコマンド・プロシージャについての詳細は,『OpenVMS Guide to System Security』を参照してください。

#1

$ PIPE SHOW SYSTEM | SEARCH SYS$INPUT HIB

この例は,1 つのコマンドでパイプライン機能を使用して,システムのすべてのハイバネート・プロセスを特定します。

#2

$ PIPE RUN TEST | SORT/SPECIFICATION=TEST.SRT -
_$ SYS$INPUT SYS$OUTPUT | DIFF SYS$INPUT  TEST.BENCHMARK

この例は,1 つのコマンドでパイプライン機能を使用して,不要な中間ファイルを生成せずにテストを実行し,結果をソートし,結果をベンチマーク・ファイルと比較します。

#3

$ PIPE (SET DEF WRK$:[WORK] ; RUN REPORT ) | MAIL SYS$INPUT SMITH

この例は,パイプラインで,サブシェルをパイプ・セグメント・コマンドとして指定する 1 つの方法を示しています。

#4

$ more :== TYPE/PAGE=SAVE SYS$INPUT 
$ PIPE    ANA/RMS PAGE.TXT | more 
 
Check RMS File Integrity              26-DEC-2001 16:12:00.06  Page 1 
SYS$SYSDEVICE:[TEST]PAGE.TXT;2 
 
FILE HEADER 
 
    File Spec: SYS$SYSDEVICE:[TEST]PAGE.TXT;2 
    File ID: (4135,58220,0) 
    Owner UIC: [PIPE] 
    Protection:  System: RWED, Owner: RWED, Group: RE, World: 
    Creation Date:   26-NOV-2001 16:08:50.05 
    Revision Date:   26-NOV-2001 16:09:09.06, Number: 1 
    Expiration Date: none specified 
    Backup Date:     none posted 
    Contiguity Options:  none 
    Performance Options: none 
    Reliability Options: none 
    Journaling Enabled:  none 
 
RMS FILE ATTRIBUTES 
 
RETURN/SPACE=More,PREV/NEXT=Scroll,INS/REM=Pan,SELECT=80/132,Q=Quit 
 

この例は,パイプラインの中で/PAGE修飾子を使用する方法を示しています。 /PAGE 機能は,他の多数のDCLコマンドにも存在し,同じように PIPE コマンドと組み合せて使用して他の有用なツールを作ることができます。

#5

$ ! 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 next stage of the pipeline 
$  WRITE tee_file LINE  ! Log output to the log file 
$  GOTO LOOP 
$ EXIT: 
$  CLOSE tee_file 
$  EXIT 

これは,パイプライン DCL アプリケーション TEE.COM の例です。

TEE.COM を使用する PIPE コマンドは次のように指定することができます。


$ PIPE  SHOW SYSTEM | @TEE showsys.log | SEARCH SYS$INPUT LEF 

コマンド・プロシージャ TEE.COM は,パイプラインを通じて送信されるデータのログを記録するために使用されています。これは,SYS$INPUT ではなく SYS$PIPE からのデータを読み込ます。

#6

$ CD_WORK :== PIPE  SAVE_DIR=F$DIRECTORY() ; SET DEFAULT FOO:[WORK] 
$ BACK  :== SET DEF 'SAVE_DIR' 
$ 
$ CD_WORK  ! Switch to working directory 
$     : 
$     : 
$ BACK     ! Switch back to home directory 
 
 
$ GET_RECORD :== PIPE READ/END_OF_FILE=CLEANUP IN RECORD ; - 
                                F$EDIT(RECORD, "COMPRESS, TRIM") 
$ 
$ OPEN IN EMPLOYEE.DAT 
$ LOOP: 
$ GET_RECORD 
$    : 
$    : 
$ GOTO LOOP 
$ 
$ CLEAN_UP: 
$    : 

この例は,シンボル定義を持つ複数のコマンドを使用して,コマンド・プロシージャに有用なツールを作成する 2 つの簡単な方法を示しています。

#7

$ PIPE cc foo.c && link foo, sys$library:vaxcrtl.olb/lib

コンパイルでエラーが発生しない場合,オブジェクト・ファイルは実行可能イメージを生成するためにリンクされます。コンパイル・エラーが発生すると,リンク・ステップはスキップされます。

#8

$ 
$ PIPE RUN COLLECT_DATA.EXE || GOTO CLEAN_UP 
$       : 
$       : 
$ EXIT 
$ 
$ CLEAN_UP: 
$       : 
$       : 

条件付きコマンド実行を使用すると,コマンド・プロシージャの中に単純なエラー処理制御フローを簡単に設定できます。 COLLECT_DATA イメージが失敗すると,制御が CLEAN_UP に移ります。

#9

$ PIPE COPY LARGE_FILE.DAT REMOTE"user password"::[DESTINATION]*.*  &

この PIPE コマンドは,大型ファイルのコピーを処理するバックグラウンド・プロセスを作成します。

#10

$ PIPE (SET DEF [.DATA_DIR] ; BACKUP  DATA.SAV/SAV [...]) ; RUN FOO

サブシェル・コマンド・シーケンスは,サブプロセスで実行されます。つまり,プロセス固有特性 ( たとえば,省略時のディレクトリ ) を変更しても,サブシェルの終了後,現在のプロセスに影響しません。この例では,プログラムFOOを実行するのに必要なデータを提供するため,セーブ・セットがザブディレクトリに復元されます。


前へ 次へ 目次 索引