日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
OpenVMS
|
目次 | 索引 |
論理ノード名のアクセス制御文字列を上書きするには,コマンド行に論理名とアクセス制御文字列の両方を指定します。
次の例では,アクセス制御文字列 "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つ削除してから一致する論理名を捜して論理名テーブルを検索します。
11.5 論理名の変換
システムは,DCL コマンド行のファイル指定または装置名を読み込むと,左端のコンポーネントが論理名であるかどうかファイル指定または装置名を調べます。左端のコンポーネントがコロン,スペース,カンマ,行終了文字 ( Enter など ) のいずれかで終わっている場合には,システムはこれを論理名として変換しようとします。左端のコンポーネントが他の文字で終わっている場合には,システムはこれを論理名としては変換しようとしません。
次の例に示すコマンドを入力すると,PUP がファイル指定の左端のコンポーネントなので,システムはPUPが論理名であるかどうかチェックします。左端のコンポーネントが Enter で終わっているため,システムは PUP を変換しようとします。
$ TYPE PUP [Enter] |
次の例に示すコマンドを入力すると,システムは DISK が論理名であるかどうかチェックします。DISK が左端のコンポーネントであり,コロンで終わっているため,システムはこれを変換しようとします。システムは,PUP のチェックを行いません。
$ TYPE DISK:PUP [Enter] |
第 3 の例では,左端のコンポーネントが右角括弧 (]) で終わっているので,[DRYSDALE]PUP を変換しようとはしません。
$ TYPE [DRYSDALE]PUP [Enter] |
論理名変換は,反復されることがあります。システムは論理名を変換すると,見つけた論理名に対して最初の論理名に含まれていた変換プロセスを繰り返します。
システムは,論理名の変換を実行するレベル数を制限します。レベルの数はシステムの機能によって異なりますが,最低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
11.5.3 論理名変換に対する省略時の検索順序 |
同一の論理名が 1 つ以上の論理名テーブルに存在することがあります。システムは,ファイル指定にある論理名を変換する場合,一致するものが見つかるまで論理名テーブルのリストを検索します。システムは,見つけた最初の一致する論理名を使用します。
検索が行われる論理名テーブルのリストは,論理名 LNM$FILE_DEV の定義で指定されます。省略時設定のリストには,プロセス,ジョブ,グループ,システム,クラスタ単位のシステム論理名テーブルから構成されます。検索は,この順序 ( プロセス,ジョブ,グループ,システム,クラスタ単位のシステム ) で行われます。
第 11.11 節 で説明するように,検索順序を変更することもできます。
11.6 論理名の表示
SHOW LOGICAL コマンドを使用して,論理名とその等価文字列を表示します。
場合によっては,論理名の定義に別の論理名が含まれることがあります。 SHOW LOGICALコマンドは,反復変換を実行します。次に等価文字列と変換のレベルを表示します。レベル数は,0 が第1レベル,1 が第2レベル,というようにゼロが基準になっています。指定された論理名に対して検索した最初の変換だけを表示するには, SHOW TRANSLATION コマンドを使用します(詳細については,『OpenVMS DCL ディクショナリ』を参照してください)。
SHOW LOGICALコマンドを使用して,プロセスパーマネント・ファイル ( 第 11.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) |
システムは,論理名,その変換,および論理名を含む論理名テーブルの名前を表示します。
省略時設定により,SHOW LOGICAL コマンドは,プロセス,ジョブ,グループ,システム,クラスタ単位のシステム・テーブルを検索して,一致するものすべてを表示します。ただし,/TABLE 修飾子を使用すると特定の論理名テーブルを検索するように指定することができます。また,修飾子 /GROUP,/SYSTEM, /JOB,/PROCESS を使用して,グループ,システム,ジョブ,プロセス論理名テーブルの論理名をそれぞれ表示することもできます。
次の例では,/TABLE 修飾子を使用して SHOW LOGICAL コマンドがプロセス論理名テーブル (LNM$PROCESS) にある論理名を表示します。
11.6.1 論理名テーブル検索の指定
$ 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 を表示し,変換属性,ターミナルを示します。
11.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 という名前のファイルを見つけると,検索を終了してそのファイルを表示します。
11.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 |
$ 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 コマンドが終了します。
ファイル指定のいずれもインストールされたイメージではない場合には,システムはファイル指定を形成するプロセスを繰り返します。今度は,システムはディスク上の各ファイル指定を調べます。そこで最初に見つけたファイルを実行します。指定されたファイルのいずれも既知のファイル・リストまたはディスク上に見つからない場合は,エラー・メッセージが表示されます。
11.7.4 複数の検索リストの検索順序
ファイル指定には,複数の検索リストが含まれることがあります。その場合,ファイル名検索リスト内の各項目が使用されますが,最初の装置名は一定のまま保持されます。ファイル名検索リスト内のすべての項目が最初の装置名と組み合わされると,今度は第2の装置名と組み合わされます。このプロセスは,それぞれの装置が検索されるまで継続します。
検索リスト内の1つの名前が別の検索リストに変換される場合には,反復 (ネストした) 検索リストを持つこともあります。この場合には,システムはサブリスト内のそれぞれの名前を使用してから,次の上位レベル名へと継続していきます。
次の例では,ファイル名と装置名に検索リストを持つファイル指定を示します。
$ DEFINE FILE CHAP1.RNO, CHAP2.RNO $ DEFINE DISK WORK1:[ROSE], WORK2:[THORN] $ SET DEFAULT DISK $ DIRECTORY FILE Directory WORK1:[ROSE] CHAP1.RNO;2 CHAP2.RNO;1 Total of 2 files. Directory WORK2:[THORN] CHAP1.RNO;1 CHAP2.RNO;1 Total of 2 files. Grand total of 2 directories, 4 files. |
各ファイル名を一覧するディレクトリ・コマンドは,最初に WORK1:[ROSE] おを表示し,次に WORK2:[THORN] を表示しています。
次の例では,反復検索リストを示しています。
$ DEFINE NESTED FRED.DAT, NEW_LIST, RICKY.DAT $ DEFINE NEW_LIST ETHEL.DAT, LUCY.DAT |
検索リストNESTEDの検索順序は次のとおりです。
FRED.DAT
ETHEL.DAT
LUCY.DAT
RICKY.DAT
目次 | 索引 |
|