前へ | 次へ | 目次 | 索引 |
ファイル指定には,論理ノード名(ローカル・ノードでシステムが変換する) と論理装置名(リモート・ノードでシステムが変換する) をともに含むことができます。論理名を使用してノード名だけを表す場合,ファイル指定のノード位置に論理名を使用するときにダブル・コロン (::) を記述する必要があります。
システムは,ローカル・ノードで論理ノード名を変換した後に,ファイル指定の残りの部分を解析してその形式が有効であるかどうか判断します。
次の例では,システムがローカル・ノードで論理ノード名 NYCを変換します。システムは,リモート・ノード(NEWYRK)で論理装置名 (DOC:) を変換します。
$ DEFINE NYC NEWYRK:: $ TYPE NYC::DOC:[PERKINS]TERM_PAPER.DAT |
論理ノード名のアクセス制御文字列を上書きするには,コマンド行に論理名とアクセス制御文字列の両方を指定します。
次の例では,アクセス制御文字列 "REVERE HTEBAZILE" が,BOSの等価文字列で与えられたアクセス制御文字列を上書きします。
$ DEFINE BOS "BOSTON""ADAMS OLMEKIKA""::" $ TYPE BOS"REVERE HTEBAZILE"::RIDE.DAT |
システムが論理ノード名を反復して変換すると,最初に変換された論理ノード名のアクセス制御情報が次のアクセス制御情報を上書きします。たとえば,論理名 TEST1 は, TORONTO"TEST NAMWENLUAP"::DBA1: に変換されます。
$ DEFINE TORONTO "TRNTO""TEST EIZNEKCAM""::" $ DEFINE TEST1 "TORONTO""TEST NAMWENLUAP""::DBA1:" $ TYPE TEST1:PROC.DAT |
TORONTOは論理ノード名なので,反復変換 が行われます。つまり,オペレーティング・システムは,定義内の全レベルの論理名が見つかる間で論理名テーブルを検索します。ただし,論理名割り当てコマンド DEFINE TEST1 のアクセス制御文字列は,論理ノード名割り当てコマンド DEFINE TORONTO のアクセス制御文字列を上書きします。したがって,TYPE コマンドにより,次のファイルが表示されます。
TRNTO"TEST NAMWENLUAP"::DBA1:PROC.DAT |
複数のDEFINEコマンドを使用すると,同一のオブジェクトを参照する複数の論理名を作成することができます。たとえば,次のコマンドは論理名 $TERMINAL と CONSOLE をターミナルの物理名に等しいと定義するので, 2つの論理名は同じ装置 (LTA69)に変換されます。
$ DEFINE $TERMINAL LTA69 $ DEFINE CONSOLE LTA69 |
論理名を削除するには,DEASSIGNコマンドを使用します。プロセスとジョブ論理名テーブルで論理名を定義すると,プロセスが終了するかまたはユーザの操作で明示的に削除しない限り,論理名は削除されません。ただし,DEFINEコマンドに /USER_MODE 修飾子を指定すると,論理名はプロセス論理名テーブルに定義されて,次のコマンド・イメージを実行した後に自動的に削除されます。
コロンで終わっている論理名を削除するには, 2つのコロンを指定します。DEASSIGNコマンドは, ASSIGNコマンドと同様,コロンを1つ削除してから一致する論理名を捜して論理名テーブルを検索します。
13.5 論理名の変換
システムは,DCLコマンド行のファイル指定または装置名を読み込むと,左端のコンポーネントが論理名であるかどうかファイル指定または装置名を調べます。左端のコンポーネントがコロン,スペース,カンマ,行終了文字 (リターンなど) のいずれかで終わっている場合には,システムはこれを論理名として変換しようとします。左端のコンポーネントが他の文字で終わっている場合には,システムはこれを論理名としては変換しようとしません。
次の例に示すコマンドを入力すると, PUPがファイル指定の左端のコンポーネントなので,システムはPUPが論理名であるかどうかチェックします。左端のコンポーネントがリターンで終わっているため,システムはPUPを変換しようとします。
$ TYPE PUP [Return] |
次の例に示すコマンドを入力すると,システムはDISKが論理名であるかどうかチェックします。 DISKが左端のコンポーネントであり,コロンで終わっているため,システムはこれを変換しようとします。システムは,PUPのチェックを行いません。
$ TYPE DISK:PUP [Return] |
第3の例では,左端のコンポーネントが右角括弧 (]) で終わっているので,[DRYSDALE]PUP を変換しようとはしません。
$ TYPE [DRYSDALE]PUP [Return] |
論理名変換は,反復されることがあります。システムは論理名を変換すると,見つけた論理名に対して最初の論理名に含まれていた変換プロセスを繰り返します。
システムは,論理名の変換を実行するレベル数を制限します。レベルの数はシステムの機能によって異なりますが,最低9レベルです。システムによって決まるレベル数を超える数を定義した場合,または循環する定義を作成した場合は,論理名を使用するとエラーが発生します。
次の例では,最初のDEFINEコマンドが論理名DISKを装置名DUA1に等しいと定義します。第2のDEFINEコマンドは,論理名MEMOをファイル指定 DISK:[JEFF.MEMOS]COMPLAINT.TXT に等しいと定義します。
$ DEFINE DISK DUA1: $ DEFINE MEMO DISK:[JEFF.MEMOS]COMPLAINT.TXT |
システムは,論理名MEMOを変換すると,等価文字列 DISK:[JEFF.MEMOS]COMPLAINT.TXT を捜します。次にシステムは,このファイル指定の左端のコンポーネントがコロン,スペース,カンマ,行末終了文字のいずれで終わっているかチェックをします。DISKの後のコロンが見つかると,システムは,その論理名も変換します。ファイル指定の最終的な変換は,次のようになります。
DUA1:[JEFF.MEMOS]COMPLAINT.TXT |
システムは,論理名を変換する際,ファイル指定の中で欠けているフィールドを,現在の省略時設定の装置,ディレクトリ名,バージョン番号で補完します。論理名を使用してコマンドに入力ファイルを指定すると,コマンドは論理名を使用してファイル指定を出力ファイルにも割り当てます。
等価文字列にファイル名とファイル・タイプが含まれる場合,出力ファイルは同じファイル名とファイル・タイプを与えられます。等価文字列にファイル・タイプが含まれない場合には,省略時設定のファイル・タイプが補充されます。補充されるファイル・タイプは,使用しているコマンドによって異なります。
入力ファイルのリストを指定する際に論理名を使用すると,各論理名の等価文字列は一時的な省略時の設定値を使用します。
次の例では,装置名が論理名 HIGに対して指定されていないので, MALに対する装置名が一時的省略時設定装置として DBA1 を定義します。
$ SET DEFAULT DBA2:[CASEY] $ DEFINE MAL DBA1:[MALCOLM] $ DEFINE HIG [HIGGINS] $ PRINT ALPHA,MAL:BETA,HIG:GAMMA |
PRINTコマンドは,次のファイルをさがします。
DBA2:[CASEY]ALPHA.LIS
DBA1:[MALCOLM]BETA.LIS
DBA1:[HIGGINS]GAMMA.LIS
同一の論理名が1つ以上の論理名テーブルに存在することがあります。システムは,ファイル指定にある論理名を変換する場合,一致するものが見つかるまで論理名テーブルのリストを検索します。システムは,見つけた最初の一致する論理名を使用します。
検索が行われる論理名テーブルのリストは,論理名 LNM$FILE_DEV の定義で指定されます。省略時設定のリストには,プロセス,ジョブ,グループ,システム,クラスタ単位のシステム論理名テーブルから構成されます。検索は,この順序 (プロセス,ジョブ,グループ,システム,クラスタ単位のシステム) で行われます。
第 13.11 節 で説明するように,検索順序を変更することもできます。
13.6 論理名の表示
SHOW LOGICALコマンドを使用して,論理名とその等価文字列を表示します。
場合によっては,論理名の定義に別の論理名が含まれることがあります。 SHOW LOGICALコマンドは,反復変換を実行します。次に等価文字列と変換のレベルを表示します。レベル数は,0 が第1レベル,1 が第2レベル,というようにゼロが基準になっています。指定された論理名に対して検索した最初の変換だけを表示するには, SHOW TRANSLATION コマンドを使用します(詳細については,『Compaq OpenVMS DCL ディクショナリ』を参照してください)。
SHOW LOGICALコマンドを使用して,プロセスパーマネント・ファイル ( 第 13.13 節 を参照) に等価文字列を定義する場合,コマンドにより表示されるのは,文字列の装置部分だけです。例を次に示します。
$ SHOW LOGICAL SYS$INPUT "SYS$INPUT" = "_TTB4:" (LNM$PROCESS_TABLE) |
次の例では,論理名MYDISKが表示されます。 2つの変換がおこなわれ,数値1は変換の第2レベルを示しています。
$ SHOW LOGICAL MYDISK "MYDISK" = "WORK4" (LNM$PROCESS_TABLE) 1 "WORK4" = "$255$DUA17:" (LNM$SYSTEM_TABLE) |
次の例では,論理名WORKFILEの等価文字列が表示されます。
$ SHOW LOGICAL WORKFILE "WORKFILE" = "DISK2:[WALSH.REPORTS]WORK_SUMMARY.DAT" (LNM$PROCESS_TABLE) |
システムは,論理名,その変換,および論理名を含む論理名テーブルの名前を表示します。
13.6.1 論理名テーブル検索の指定
省略時設定により,SHOW LOGICALコマンドは,プロセス,ジョブ,グループ,システム,クラスタ単位のシステム・テーブルを検索して,一致するものすべてを表示します。ただし, /TABLE 修飾子を使用すると特定の論理名テーブルを検索するように指定することができます。また,修飾子 /GROUP,/SYSTEM,/JOB,/PROCESS を使用して,グループ,システム,ジョブ,プロセス論理名テーブルの論理名をそれぞれ表示することもできます。
次の例では,/TABLE修飾子を使用してSHOW LOGICALコマンドがプロセス論理名テーブル (LNM$PROCESS) にある論理名を表示します。
$ SHOW LOGICAL/TABLE=LNM$PROCESS (LNM$PROCESS_TABLE) "DECW$DISPLAY" = "_WSA30:" "SYS$COMMAND" = "_FIFI$VTA65:" "SYS$DISK" [super] = "WORK1:" "SYS$DISK" [exec] = "WORK1:" "SYS$ERROR" = "_FIFI$VTA65:" "SYS$INPUT" = "_FIFI$VTA65:" "SYS$OUTPUT" [super] = "_FIFI$VTA65:" "SYS$OUTPUT" [exec] = "_FIFI$VTA65:" "TT" = "_VTA65:" |
論理名の変換属性とアクセスモードを表示するには,次のように SHOW LOGICAL/FULL コマンドを使用します。
$ SHOW LOGICAL/FULL SYS$ERROR "SYS$ERROR" [exec] = "_PADRAIC$TDA824:" [terminal] (LNM$PROCESS_TABLE) |
この例では,エグゼクティブ・モードの論理名 SYS$ERROR を表示し,変換属性,ターミナルを示します。
13.7 検索リストの作成と使用
論理名が,単一の DEFINE (または ASSIGN) コマンド内の複数の等価文字列に等しいと定義されると,検索リストが作成されます。
ファイル指定にある検索リストを使用すると,検索リストは次のように変換されます。
システムは,一致するものを見つけるまで,等価文字列を指定した順序で論理名を変換します。
コマンドの効果が及ぶのは,見つけた最初のファイルだけです。その時点で検索は終了します。一致するものが見つからない場合には,システムは見つけようとした最後のファイルに関してエラーを報告するだけです。
検索リストはワイルドカードではありませんので注意してください。これは調べるべき場所のリストです。
次の例では,論理名GETTYSBURGが検索リストです。
$ DEFINE GETTYSBURG [JONES.HISTORY],[JONES.WORKFILES] $ SHOW LOGICAL GETTYSBURG "GETTYSBURG" = "[JONES.HISTORY]" (LNM$PROCESS_TABLE) = "[JONES.WORKFILES]" |
次の例では,TYPEコマンドは等価文字列 [JONES.HISTORY] を検索してから, [JONES.WORKFILES] を検索します (GETTYSBURG に指定した論理名の優先定義に指定した順序)。
$ TYPE GETTYSBURG:SPEECH.TXT DISK1:[JONES.HISTORY]SPEECH.TXT;2 Fourscore and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty, and dedicated to the proposition that all men are created equal. . . . |
TYPE コマンドは,SPEECH.TXT という名前のファイルを見つけると,検索を終了してそのファイルを表示します。
13.7.1 ワイルドカードを使用できるコマンドでの検索リストの使用
ワイルドカードを使用できるコマンドでは検索リストを使用することができます。ワイルドカードを使用すると,システムは検索リストの各等価文字列を使用してファイル指定を形成します。コマンドは,既存のファイルを示す各ファイル指定コマンドで動作します。
次の例で,DIRECTORY コマンドは,バージョン・フィールドにワイルドカード文字を指定しています。このコマンドは, GETTYSBURGで定義された検索リスト内の SPEECH.TXTの全バージョンを探し出します。
$ DIRECTORY GETTYSBURG:SPEECH.TXT;* Directory DISK1:[JONES.HISTORY] SPEECH.TXT;2 SPEECH.TXT;1 Total of 2 files. Directory DISK1:[JONES.WORKFILES] SPEECH.TXT;1 Total of 1 file. Grand total of 2 directories, 3 files. |
(たとえば DIRECTORY コマンドを使用して)検索リストを入力すると,オペレーティング・システムはリストの一部にある要素を使用して,リストの他の部分から省略されているファイル指定の部分を補充します。ファイル指定が完全ではない場合 (次の例の SYS$LOGIN で示すように),コマンド行が multiple files and file-not-found 条件を生成します。
$ DIRECTORY SYS$MANAGER:LOGIN.COM,SYS$LOGIN |
次に示すように,ファイル指定の後にセミコロンを入れると multiple files and file-not-found 条件を回避することができます。
$ DIRECTORY SYS$MANAGER:LOGIN.COM;,SYS$LOGIN |
13.7.2 SET DEFAULTコマンドによる検索リストの使用
SET DEFAULT コマンドのパラメータの最初の部分として検索リストを指定すると,システムは検索リスト名を変換せずに SYS$DISKに割り当てます(SYS$DISK は省略時設定のディスクに変換する論理名です)。検索リストを SET DEFAULT コマンドのパラメータの最初の部分として指定すると,検索リスト内の各等価文字列には装置名が含まれている必要があります。
次の例では,装置とディレクトリの両方が指定されています。したがって,両方がファイル指定の構成に使用されます。
$ DEFINE FIFI DISK1:[FRED],DISK2:[GLADYS],DISK3:[MEATBALL.SUB] $ DIRECTORY FIFI:MEMO.LIS |
このコマンドにより次のファイルのリストが表示されます。
DISK1:[FRED]MEMO.LIS DISK2:[GLADYS]MEMO.LIS DISK3:[MEATBALL.SUB]MEMO.LIS |
次の例では,SHOW DEFAULT コマンドは省略時設定のディスクとディレクトリを DISK2:[MEATBALL.SUB] として示します。次に,検索リスト FIFI が定義されます。 SET DEFAULT コマンドは,そのパラメータとして検索リストを使用します。 SHOW DEFAULT コマンドを2度めに実行すると,省略時のディレクトリが変更されていないことが示されます。ただし,検索リスト FIFI がその等価文字列とともに省略時設定の装置として表示されます。 SHOW DEFAULT コマンドは,検索リストがシステムに定義された順序で,検索リストを表示します。
$ SHOW DEFAULT DISK2:[MEATBALL.SUB] $ DEFINE FIFI DISK1:[FRED], DISK2:[GLADYS], DISK3: $ SET DEFAULT FIFI $ SHOW DEFAULT FIFI:[MEATBALL.SUB] = DISK1:[FRED] = DISK2:[GLADYS] = DISK3:[MEATBALL.SUB] |
RUNコマンドの後に検索リストが続く場合,システムは前述のようにファイル指定を形成します。ただし,システムはリスト内のファイルがインストールされたイメージであるかどうかをチェックします。システムは,検索リスト内のインストールされたイメージの中の最初に指定されたファイルを実行します。その後 RUN コマンドが終了します。
ファイル指定のいずれもインストールされたイメージではない場合には,システムはファイル指定を形成するプロセスを繰り返します。今度は,システムはディスク上の各ファイル指定を調べます。そこで最初に見つけたファイルを実行します。指定されたファイルのいずれも既知のファイル・リストまたはディスク上に見つからない場合は,エラー・メッセージが表示されます。
前へ | 次へ | 目次 | 索引 |