日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS
ドキュメント・ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
    ≫ コマンド一覧
    ≫ レキシカル関数
付録 A:廃止されたコマンド
付録 B:DCL整数表現の範囲を超える数値の処理
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引




論理名を作成し,指定された論理名に1つまたは複数の等価文字列を割り当てます。既に定義されている論理名を指定した場合には,古い等価名は新しい等価名で置き換えられます。

形式

ASSIGN 等価名[,...] 論理名[:]


パラメータ



等価名[,...]

1 文字から 255 文字までの文字列を指定します。等価名は通常,ファイル名や装置名,他の論理名であり,特定の論理名テーブル内の論理名に割り当てられます。文字列に大文字の英数字,ドル記号 ($),またはアンダースコア文字 (_) 以外の文字が含まれている場合には,文字列を二重引用符 (" ") で囲む必要があります。等価文字列に二重引用符が含まれている場合には,2 つの連続した二重引用符 ("") を指定します。1 つの論理名に複数の等価名を指定すると,サーチ・リストが生成されます。 1 つの論理名は,最大 128 個までの等価名を持つことができます。

ファイル指定として使用される等価名を指定する場合には,等価名がファイル指定としてそのまま使用されるときに必要となる句読点(コロン (:),かぎ括弧 ([]),ピリオド (.) )を含む必要があります。したがって,装置名を等価名として指定する場合には,装置名の最後にコロンを指定しなければなりません。

ASSIGN コマンドを使用すると,同じ論理名を複数の等価名に与えることができます。1 つの論理名に対して複数の等価名を指定する場合には,サーチ・リストが生成されます。サーチ・リストについての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。

論理名[:]

論理名文字列を指定します。論理名文字列には,1 文字から 255 文字までを含むことができます。指定した論理名テーブル内の等価名を表すのに論理名を選択することができます。

論理名に大文字の英数字,ドル記号,アンダースコア以外の文字が含まれている場合には,論理名を二重引用符で囲まなければなりません。論理名に二重引用符が含まれる場合には,論理名全体を二重引用符で囲み,二重引用符が必要な位置に連続した 2 つの二重引用符を指定します。論理名の最後にコロンを指定した場合,その名前を論理名テーブルに登録する前に,システムがコロンを削除します。 ( この点は DEFINE コマンドと異なります。DEFINEコマンドでは,コロンはそのまま保存されます。) プロセス・ディレクトリ論理名テーブル (LNM$PROCESS_DIRECTORY) またはシステム・ディレクトリ論理名テーブル (LNM$SYSTEM_DIRECTORY) に登録される論理名は,1 文字から 31 文字の長さでなければなりません。この長さには,ドル記号やアンダースコア文字も含みます。プロセス・ディレクトリまたはシステム・ディレクトリに登録する論理名が,論理名テーブル名に変換される場合には,名前の中の英文字はすべて大文字である必要があります。省略時の設定では,論理名はプロセス論理名テーブルに登録されます。

論理名に英数字,ドル記号およびアンダースコア文字以外の文字を含める場合には,名前を二重引用符で囲みます。論理名に二重引用符を含める場合には,名前を二重引用符で囲み,二重引用符の必要な部分に 2 つの連続した二重引用符を置きます。論理名を二重引用符で囲むと,英字の大文字と小文字の区別は保持されます。


説明

ASSIGN コマンドは,1 つまたは複数の等価名を表わす論理名を定義して,論理名テーブルにエントリを作成します。等価名は,装置名,他の論理名,ファイル指定,またはその他の任意の文字列です。

論理名を格納したい論理名テーブルを指定するには,/PROCESS,/JOB, /GROUP,/SYSTEM,または /TABLE 修飾子を使用します。複数の修飾子を指定した場合は,最後に指定した修飾子だけが有効です。テーブルを指定しない場合は,省略時の設定により /TABLE=LNM$PROCESS ( または /PROCESS) に格納されます。

作成する論理名のアクセス・モードを指定するには,/USER_MODE, /SUPERVISOR_MODE,または /EXECUTIVE_MODE 修飾子を使用します。複数の修飾子を指定した場合は,最後に指定した修飾子だけが有効です。アクセス・モードを指定しない場合は,スーパバイザ・モード名が作成されます。論理名は,その論理名を格納しているテーブルと同じモードかまたは外側のモードで作成できます ( ユーザ・モードが一番外側のモードで,エグゼクティブ・モードが一番内側のモードです )。

名前ごとにアクセス・モードが異なっていれば,同じ論理名テーブルに同じ名前を持つ複数の論理名を格納することができます ( ただし,テーブル内の既存の論理名が NO_ALIAS 属性を持つ場合は,このテーブルで同じ名前を使用して外側のモードの論理名を作成できません )。

既存の論理名と同じテーブルで同じモードの同じ名前を持つ論理名を作成すると,新しい論理名で既存の論理名が置き換えられます。

DEFINE コマンドを使用して,論理名を作成することもできます。テーブルから論理名を削除するには,DEASSIGN コマンドを使用します。

  注意
SYS$SYSTEM: 内の実行可能イメージのファイル名と同じ論理名は割り当てないでください。このような論理名を使用すると,そのイメージを起動できなくなります。

論理名の作成と使用の方法については,『OpenVMS ユーザーズ・マニュアル』を参照してください。


修飾子



/CLUSTER_SYSTEM

この修飾子を使用するためには, SYSTEM アカウントでログインするか, SYSNAM (システム論理名) 特権または SYSPRV (システム) 特権を持っている必要があります。

LNM$SYSCLUSTER テーブルにクラスタ・ワイド論理名を割り当てます。

/EXECUTIVE_MODE

SYSNAM(システム論理名)特権が必要です。

指定されたテーブルにエグゼクティブ・モードの論理名を作成します。 /EXECUTIVE_MODE 修飾子を指定しても SYSNAM 特権が与えられていない場合には,ASSIGN コマンドはその修飾子を無視して,スーパバイザ・モードの論理名を作成します。論理名のモードは,登録する論理名テーブルのモードと同じか,またはより低いモードでなければなりません。

/GROUP

SYSPRV(システム特権)または GRPNAM(グループ論理名)特権が必要です。

論理名をグループ論理名テーブルに登録します。UIC ( 利用者識別コード ) のグループ番号が等しい他のユーザは,その論理名をアクセスすることができます。 /GROUP 修飾子は /TABLE=LNM$GROUP の同意語です。

/JOB

論理名をジョブ単位の論理名テーブルに登録します。論理名を作成しているプロセスと同じジョブの階層構造に含まれるプロセスはすべて,その論理名をアクセスすることができます。 /JOB 修飾子は /TABLE=LNM$JOB の同意語です。

/LOG (省略時の設定)

/NOLOG

既存の名前を置換する論理名を定義するときに,メッセージが表示されるかどうかを制御します。

/NAME_ATTRIBUTES[=(キーワード[,...])]

論理名の属性を指定します。省略時の設定では,属性は何も設定されません。属性として,次のキーワードを指定することができます。

CONFINE SPAWN コマンドでサブプロセスを作成した時,論理がサブプロセスにコピーされないことを指定します。このキーワードは,利用者固有のテーブルに論理名を作成する場合にだけ,意味を持ちます。
NO_ALIAS より低い特権の(外側の)アクセス・モードでは,このテーブルに同じ名前の論理名を作成できないことを指定します。同じ名前を持つ他の論理名が,このテーブルより低い特権のアクセス・モードで既に存在する場合には,その論理名は削除されます。

キーワードを 1 つだけしか指定しない場合には,括弧を省略することができます。指定した属性だけが設定されます。

/PROCESS (省略時の設定)

論理名をプロセス論理名テーブルに登録します。 /PROCESS 修飾子は /TABLE=LNM$PROCESS の同意語です。

/SUPERVISOR_MODE (省略時の設定)

スーパバイザ・モードの論理名を,指定されたテーブルに作成します。

/SYSTEM

SYSNAM(システム論理名)または SYSPRV(システム特権)特権が必要です。

論理名をシステム論理名テーブルに登録します。システムのすべてのユーザが,その論理名をアクセスすることができます。 /SYSTEM 修飾子は /TABLE=LNM$SYSTEM の同意語です。

/TABLE=テーブル名

共用可能な論理名テーブルの名前を指定する場合には,そのテーブルに対して書き込み(W)アクセス権が必要です。

論理名が登録される論理名テーブルの名前を指定します。 /TABLE 修飾子を使用すれば,ユーザが定義した論理名テーブル(CREATE/NAME_TABLE コマンドによって作成されるテーブル)や,プロセス論理名テーブル,ジョブ論理名テーブル,グループ論理名テーブル,システム論理名テーブルのいずれも指定することができ,あるいはプロセス論理名ディレクトリ・テーブルまたはシステム論理名ディレクトリ・テーブルを指定することもできます。

複数の等価名を持つ論理名を使ってテーブル名を指定すると,その論理名は最初に検出されたテーブルに登録されます。たとえば,ASSIGN/TABLE=LNM$FILE_DEV を指定した時, LNM$FILE_DEV は LNM$PROCESS と LNM$JOB,LNM$GROUP,LNM$SYSTEM に等しいと定義されているので,この場合には,論理名が LNM$PROCESS に登録されます。

/TABLE 修飾子を明示的に指定しなかった場合には,省略時の設定として, /TABLE=LNM$PROCESS が使用されます。

/TRANSLATION_ATTRIBUTES[=(キーワード[,...])]

等価名修飾子

論理名を等価文字列に変換する際の,1 つまたは複数の属性を指定します。変換属性に対しては,次のキーワードを指定できます。

CONCEALED 等価文字列が隠し装置名であることを指定します。

隠し装置名が定義されると,装置を参照するメッセージの中で,等価文字列ではなく論理名が表示されます。 CONCEALED属性を指定した場合,等価文字列は物理装置名でなければなりません。

TERMINAL 等価文字列の反復変換を行わないことを指定します。したがって,論理名変換は現在の等価文字列で終了します。

キーワードを1つだけしか指定しない場合には,括弧を省略することができます。指定した属性だけが設定されます。

同じ論理名に対して複数の異なる等価文字列を指定する場合は,各等価文字列に対して異なる変換属性を指定できます。

/USER_MODE

ユーザ・モードの論理名を,指定のテーブルに作成します。

プロセス論理名テーブルに作成されたユーザ・モード論理名は,ただ1つのイメージの実行のためにだけ使用されます。すなわち,ユーザ・モードの論理名は,そのプロセス内で実行されるイメージが終了した時に(つまり,イメージを実行する DCL コマンドやユーザ・プログラムが実行を終了した後に)論理名テーブルから削除されます。また,ユーザ・モードの論理名は,コマンド・プロシージャを起動した時や終了した時にも自動的に削除されます。


#1
$ ASSIGN $DISK1:[CREMERS.MEMOS] MEMOSD

この ASSIGN コマンドは,ファイル指定の一部分 $DISK1:[CREMERS.MEMOS]を論理名 MEMOSD に割り当てます。

#2
$ ASSIGN/USER_MODE $DISK1:[FODDY.MEMOS]WATER.TXT TM1

この ASSIGN コマンドは,論理名 TM1 にファイル指定を割り当てています。イメージの実行後に,この論理名は自動的に削除されます。

#3
$ ASSIGN XXX1:[HEROLD]  ED
$ PRINT  ED:TEST.DAT
Job 274 entered on queue SYS$PRINT
 

この ASSIGN コマンドは,ED という論理名を,XXX1 というディスクの[HEROLD]というディレクトリ名に割り当てます。この後,ED という論理名を参照すると,この論理名が指定されたディスクおよびディレクトリとして使用されます。 PRINT コマンドは,XXX1:[HEROLD]TEST.DAT というファイルを印刷するジョブを,システム・プリンタのキューに登録します。

#4
$ ASSIGN YYY2:  TEMP:
$ SHOW LOGICAL TEMP
   "TEMP" = "YYY2:" (LNM$PROCESS_TABLE)
$ DEASSIGN TEMP
 

この ASSIGN コマンドは,TEMP という論理名を YYY2 という装置に割り当てます。 TEMP は,スーパバイザ・モードで作成され,プロセス論理名テーブルに登録されます。 SHOW LOGICAL コマンドは,論理名の割り当てが実行されたかどうかを確認します。この ASSIGN コマンドでは,TEMP という論理名の最後にコロンが指定されていますが,コマンド・インタプリタは論理名テーブルにその論理名を登録する前に,コロンを削除します。したがって,この後の DEASSIGN コマンドでは, TEMP だけを指定し,コロンは省略することができます。 SHOW LOGICAL コマンドでは,コロンを省略(たとえば,SHOW LOGICAL TEMP)しなければなりません。

#5
$ MOUNT TTT1: MASTER TAPE
$ ASSIGN TAPE:NAMES.DAT PAYROLL
$ RUN PAYROLL
   .
   .
   .
 

この例では,装置 TTT1: にマウントされたボリューム(ラベル名 MASTER)に論理名 TAPE を MOUNT コマンドで割り当てています。 ASSIGN コマンドで,論理装置 TAPE 上のファイル NAMES.DAT に論理名 PAYROLL を割り当てています。したがって,プログラムが論理名 PAYROOL で参照する OPEN 要求を出すと,ボリューム・ラベル名 MASTER というテープ上のファイル NAMES.DATがオープンされます。

#6
$ CREATE/NAME_TABLE TABLE1
$ ASSIGN/TABLE=LNM$PROCESS_DIRECTORY TABLE1,-
_$ LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM LNM$FILE_DEV
$ ASSIGN/TABLE=TABLE1 -
_$ /TRANSLATION_ATTRIBUTES=CONCEALED  DKA1:  WORK_DISK
 

この例の CREATE/NAME_TABLE コマンドは,プロセス固有の論理名テーブル TABLE1 を作成します。

最初の ASSIGN コマンドは,ファイル指定や装置名の論理名変換の際に TABLE1 が最初に検索されるようにしています(これは,TABLE1 が論理名 LNM$FILE_DEV の等価文字列の最初の項目であり,LNM$FILE_DEV が装置名やファイル指定を変換する際の論理名テーブル検索の省略時の順序を決めるものだからです)。

2番目の ASSIGN コマンドは,WORK_DISK という論理名を DKA1 という物理装置に割り当て,その論理名を TABLE1 に登録します。この論理名は,隠し属性を持っています。したがって,システム・メッセージには, WORK_DISKという論理名が表示されます。

#7
$ ASSIGN/TABLE=LNM$PROCESS/TABLE=LNM$GROUP  DKA0:  SYSFILES
$ SHOW LOGICAL  SYSFILES
  "SYSFILES" = "DKA0:" (LNM$GROUP_000240)
 

この ASSIGN コマンドには,矛盾する修飾子が含まれています。このような場合には,最後に指定された修飾子を使用します。したがって,SHOW LOGICAL コマンドからの応答は,論理名がグループ論理名テーブルに登録されたことを示しています。

#8
$ ASSIGN/TABLE=LNM$GROUP 'F$TRNLNM("SYS$COMMAND")' TERMINAL
%DCL-I-SUPERSEDE, previous value of TERMINAL has been superseded
 

この例の ASSIGN コマンドは,レキシカル関数 F$TRNLNM を用いて論理名 SYS$COMMAND を変換し,その結果を論理名 TERMINAL の等価名として使っています。 ASSIGN コマンドからのメッセージは,論理名 TERMINAL のエントリが既にグループ論理名テーブルに存在していたため,以前のものが新しいエントリに置き換えられたことを示しています。

このコマンドを LOGIN.COM ファイルで使用すれば,各ターミナル・セッション開始時に論理名 TERMINAL が再定義されます。現在のプロセスやそのサブプロセスでは,論理名 TERMINAL を使用して現在の端末にメッセージを出力できます。

#9
$ ASSIGN DALLAS::DMA1:  DATA

論理名 DATA にリモート・ノード DALLAS 上の装置 DMA1 を割り当てています。これ以降の論理名 DATA の参照は,リモート・ノード上のディスクに対するものとなります。

#10
$ CREATE AVERAGE.COM
$ ASSIGN/USER_MODE SYS$COMMAND:  SYS$INPUT
$ EDIT/EDT AVERAGE.FOR
$ FORTRAN AVERAGE
$ LINK AVERAGE
$ RUN AVERAGE
87
80
90
9999
$ EXIT
[Ctrl/Z]
$ @AVERAGE.COM
 

CREATE コマンドでコマンド・プロシージャ AVERAGE.COM を作成しています。

コマンド・プロシージャ内の ASSIGN コマンドは,/USER_MODE 修飾子で一時的に SYS$INPUT の値を変更しています。EDT エディタが起動されると,ターミナルから入力を受け取ります。このようにして,プログラム AVRAGE.FOR を会話形式で作成または変更できます。

EDT を終了すると,ユーザ・モードの SYS$INPUT は削除され,元の値(コマンド・プロシージャによって与えられた入力ストリーム)に戻ります。したがって,プログラム AVERAGE はコマンド・プロシージャ内から入力を受け取ることになります。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.