HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
このコマンド・プロシージャは,パラメータがそのプロシージャに渡されたかどうかをテストします。パラメータが渡されていない場合には,プロシージャは必要なパラメータを要求するプロンプトを表示します。そのあと,パラメータ P1 を再びテストします。データを含まない行を指定するために,キャリッジ・リターンを入力し,パラメータとして空文字列が与えられた場合には,プロシージャは終了します。それ以外の場合には,入力パラメータとして P1 の現在の値を使用して, PRINT コマンドを実行します。
| #5 |
|---|
$ IF P1 .EQS. "" THEN INQUIRE P1 "Code" $ CODE = %X'P1' $ EXIT CODE |
この例は,システム・ステータス・コードからシステム・メッセージを得る 1 つの方法を示しています。パラメータが 1つ必要で,入力しないと入力するよう要求します。基数演算子 %X を付けてシンボル CODE に代入しています。そして,EXIT コマンドを実行します。たとえば次のように使用します。
$ @E 1C %SYSTEM-F-EXQUOTA, exceeded quota
プロシージャ終了時には,$STATUS には %X1C が代入され,この値は EXQUOTA メッセージに評価されます。または,レキシカル関数 F$MESSAGE を使用しても同様のことができます。
| #6 |
|---|
$ RUN MYPROG [Ctrl/Y] $ EXIT |
この RUN コマンドは,MYPROG.EXE というイメージの実行を開始します。そのあと,CTRL/Y を使用して実行に割り込みがかけられています。 EXIT コマンドは MYPROG.EXE を終了する前に,イメージによって宣言された終了ハンドラ・ルーチンを呼び出します。
Alpha システムの場合は,ASCII ビットマップ分散フォーマット (BDF) をバイナリ・ポータブル・コンパイル・フォーマット (PCF) に変換します。また VAX システムの場合は,ASCII ビットマップ分散フォーマット (BDF) をバイナリ・サーバ・ナチュラル・フォーマット (SNF) に変換します。 DECwindows サーバは,PCF または SNF ファイルを使用してフォントを表示します。 BDF ファイルをバイナリ・フォームに変換する際に,フォント・コンパイラは,フォントとコンパイル・プロセスに関する統計情報を提供します。フォント・コンパイラについての詳細は,OpenVMS DECwindows のプログラミングに関するマニュアルまたはオンライン・ヘルプを参照してください。
FONT ファイル指定
コマンド・プロシージャ・レベルを変更せずに,制御をコマンド・プロシージャ内のラベルが付けられたサブルーチンに渡します。
GOSUB ラベル
ラベル
コマンド行の最初の項目として, 1 文字から 255 文字までの英数字のラベルを指定します。ラベルの中にブランクを含むことはできません。 GOSUB コマンドの実行後,制御は指定されたラベルのあとのコマンドに渡されます。ラベルは,現在のコマンド・プロシージャの中で, GOSUB ステートメントの前でもあとでもかまいません。コマンド・プロシージャ内でラベルを使用する場合には,最後にコロンを指定しなければなりません。ラベルが重複している場合,最も最近読まれたラベルへ飛びます。
ラベルで指定されたサブルーチンへ制御を移すには,コマンド・プロシージャで GOSUB コマンドを使用します。コマンド・ストリームをランダム・アクセス装置 ( つまりディスク装置 ) から読み取っていないと,GOSUB コマンドは動作しません。RETURN コマンドは,GOSUB サブルーチン・プロシージャを終了させ, GOSUB 文の呼び出しの次のコマンドへ制御を移します。 RETURN コマンドは,省略可能な状態値を受け付けます。
GOSUB コマンドでは,新しいプロシージャ・レベルは生成されません。したがって,これを "ローカルの" サブルーチン呼び出しと呼びます。現在のコマンド・プロシージャ・レベルで定義されたラベルとローカル・シンボルは,GOSUB コマンドで呼び出されたサブルーチンで使用できます。GOSUB コマンドは,プロシージャ・レベル当り,最高 16 レベルまでネストできます。
コマンド・インタプリタは,ラベルを検出すると,ラベル・テーブルにラベルを入れます。このテーブルは,ローカル・シンボル・テーブルで使用できる領域から割り当てられます。コマンド・インタプリタがすでにテーブルに存在しているラベルを検出すると,既存の定義が新しい定義で置き換えられます。したがって,重複ラベルを使用すると,制御は常に DCL が最後に読み取ったラベルに移ります。次の規則が適用されます。
- GOSUB コマンドの前と後に重複ラベルがある場合,制御はコマンドの前にあるラベルに移ります。
- すべての重複ラベルが GOSUB コマンドより前にある場合,制御は,最新のラベル,つまり GOSUB コマンドに最も近いラベルに移ります。
- すべての重複ラベルが GOSUB コマンドより後にある場合,制御は, GOSUB コマンドに最も近いラベルに移ります。
現在のコマンド・プロシージャにラベルが存在しない場合,プロシージャは続行できないため,強制終了します。
ラベルに使用できる領域のサイズには,制限があることに注意してください。コマンド・プロシージャが多くのシンボルを使用し,多くのラベルがある場合,コマンド・インタプリタのテーブル領域が不足し,エラー・メッセージが出ることがあります。
| #1 |
|---|
$! $! GOSUB.COM $! $ SHOW TIME $ GOSUB TEST1 $ WRITE SYS$OUTPUT "success completion" $ EXIT $! $! TEST1 GOSUB definition $! $ TEST1: $ WRITE SYS$OUTPUT "This is GOSUB level 1." $ GOSUB TEST2 $ RETURN %X1 $! $! TEST2 GOSUB definition $! $ TEST2: $ WRITE SYS$OUTPUT "This is GOSUB level 2." $ GOSUB TEST3 $ RETURN $! $! TEST3 GOSUB definition $! $ TEST3: $ WRITE SYS$OUTPUT "This is GOSUB level 3." $ RETURN |
このコマンド・プロシージャは,ラベルを付けられたサブルーチンへ制御を移すための GOSUB コマンドの使い方を示します。 GOSUB コマンドは TEST1にラベルを付けたサブルーチンに制御を移動します。プロシージャは,サブルーチン TEST1 でコマンドを実行し,サブルーチン TEST2 へ分岐します。その後,プロシージャは,サブルーチン TEST2 でコマンドを実行し,サブルーチン TEST3 へ分岐します。それぞれのサブルーチンは RETURN コマンドによって終了します。 TEST3 が実行された後, RETURN コマンドはそれぞれの呼出し GOSUB ステートメントに後続するコマンドラインへ制御を返します。この時点で,プロシージャはうまく実行されています。
制御をコマンド・プロシージャ内のラベルが付けられたステートメントに渡します。
GOTO ラベル
ラベル
コマンド行の最初の項目として,1 文字から 255 文字までの英数字のラベルを指定します。ラベルの中にブランクを含むことはできません。 GOTO コマンドの実行後,制御は指定されたラベルのあとのコマンドに渡されます。ラベルは,現在のコマンド・プロシージャの中で,GOTO ステートメントの前でもあとでもかまいません。コマンド・プロシージャ内でラベルを使用する場合には,最後にコロンを指定しなければなりません。ラベルが重複している場合,最も最近読まれたラベルへ飛びます。
プロシージャ内の次の行ではない行に制御を移すには,コマンド・プロシージャで GOTO コマンドを使用します。ラベルは,現在のコマンド・プロシージャの GOTO 文の前でも後でも使用できます。コマンド・ストリームがランダム・アクセス装置 ( つまりディスク装置 ) から読み取られていない場合,GOTO コマンドは動作しません。GOTO コマンドのターゲット・ラベルが別の IF-THEN-ELSE 構造内にある場合は,エラー・メッセージ (DCL-W-USGOTO) が返されます。
コマンド・インタプリタは,ラベルを検出すると,ラベル・テーブルにラベルを入れます。このテーブルは,ローカル・シンボル・テーブルで使用できる領域から割り当てられます。コマンド・インタプリタがすでにテーブルに存在しているラベルを検出すると,既存の定義が新しい定義で置き換えられます。したがって,重複ラベルを使用すると,制御は常に DCL が最後に読み取ったラベルに移ります。次の規則が適用されます。
- GOTO コマンドの前と後に重複ラベルがある場合,制御はコマンドの前にあるラベルに移ります。
- すべての重複ラベルが GOTO コマンドより前にある場合,制御は,最新のラベル,つまり GOTO コマンドに最も近いラベルに移ります。
- すべての重複ラベルが GOTO コマンドより後にある場合,制御は,GOTO コマンドに最も近いラベルに移ります。
現在のコマンド・プロシージャにラベルが存在しない場合,プロシージャは続行できないので,強制終了します。
ラベルに使用できる領域のサイズには,制限があることに注意してください。コマンド・プロシージャが多くのシンボルを使用し,多くのラベルがある場合,コマンド・インタプリタのテーブル領域が不足し,エラー・メッセージが出ることがあります。
| #1 |
|---|
$ IF P1 .EQS. "HELP" THEN GOTO TELL $ IF P1 .EQS. "" THEN GOTO TELL . . . $ EXIT $ TELL: $ TYPE SYS$INPUT To use this procedure, you must enter a value for P1. . . . $ EXIT |
この例では,IF コマンドはプロシージャに渡された最初のパラメータを調べます。このパラメータが HELP という文字列の場合,あるいはパラメータが指定されていない場合には,GOTO コマンドが実行され,制御は TELL というラベルの行に移ります。それ以外の場合には,プロシージャは EXIT コマンドが検出されるまで実行を継続します。 TELL というラベルでは,TYPE コマンドがプロシージャの使用方法を示す入力ストリームのデータを表示します。
| #2 |
|---|
$ ON ERROR THEN GOTO CHECK . . . $ EXIT $ CHECK: ! Error handling routine . . . $ END: $ EXIT |
ON コマンドは,エラー処理ルーチンを設定します。そのあと,コマンド・プロシージャ内で実行されるコマンドあるいはプロシージャが,エラーまたは重大なエラーを報告した場合には,GOTO コマンドは,制御を CHECK というラベルに移します。
HELP コマンドを実行すると,HELP 機能が起動します。 HELP 機能は,コマンドの形式や説明,パラメータ,修飾子,およびシステム・メッセージを含め,システムの使用に関する情報を表示します。 Topic? というプロンプトに対して,次の指示ができます。
- 知りたいコマンドまたはトピックの名前をタイプします。
- HELP の使用方法についてより詳細な情報が欲しいときは, INSTRUCTIONS とタイプします。
- 知りたいコマンドまたたトピックの名前がはっきり分からない場合は, HINTS とタイプします。
- HELP/MESSAGE ユーティリティについての知りたい場合は, HELP/MESSAGE とタイプします。
- 一番最後に要求したテキストをもう一度見たい場合は,疑問符(?) をタイプします。
- HELP 機能を終了させたい場合は,Return を 1 回または数回押してください。
すべてのトピック名は短縮することができます。一意にトピックを選択できない場合は,あてはまるすべてのトピックが表示されます。
HELP [トピック[サブトピック...]]
トピック[サブトピック...]
ヘルプ・ライブラリの情報が必要なトピック,またはトピックとサブトピックを指定します。
ヘルプ・ライブラリ内の情報は,階層構造になっています。階層構造の各レベルは,次のとおりです。
- なし --- キーワードを指定しない場合には,HELP コマンドの説明,ルート・ライブラリに含まれているトピックのリストが表示されます。リストに含まれる各項目は,階層構造の第 1 レベルのキーワードです。
- トピック名 --- キーワードとしてトピック名を指定した場合は,ルート・ライブラリ,または他の使用可能な省略時のライブラリに含まれているトピックの説明が表示されます。また,このトピックに関する追加情報を要求するためのキーワードも表示されます。
- トピック名とサブトピック--- トピックのあとにサブトピックを指定した場合は,指定したサブトピックの説明が表示されます。
- 上記のいずれかの後の @ ファイル指定 --- 現在のルート・ライブラリと置き換えるために HELP ライブラリを指定した場合は,指定されたトピックまたはサブトピックの説明を,指定されたライブラリから検索します。ファイル指定の形式は,/LIBRARY 修飾子に指定されるファイル指定と同じ形式です。しかし,指定されたライブラリが使用可能な省略時のユーザ定義ライブラリである場合には,ファイル指定は,省略時のライブラリの論理名変換の中で,それぞれ一意に識別できる文字列まで省略できます。
OpenVMS 上で最も簡単な形式で HELP 機能を使用する方法は,ターミナルから HELP コマンドを入力することです。 HELP コマンドを入力すると,HELP 機能はユーザのターミナルにトピックの一覧と Topic? というプロンプトを表示します。あるトピックに関する情報を表示したい場合は, Topic? プロンプトに対してトピック名を入力します。システムは,そのトピックに関する情報を表示します。
トピックにサブトピックがある場合は,サブトピックの一覧と Subtopic? というプロンプトが表示されます。あるサブトピックに関する情報を表示したい場合は, Subtopic? プロンプトに対してサブトピック名を入力します。他のトピックの情報を見たい場合は,Return を押します。 Topic? プロンプトが表示されている時は,他のトピックの情報を表示させることができます。 HELP 機能を終了し DCL レベルに戻るには,Return を押します。
キーワードの代わりにアスタリスク (*) を使用すると, HELP コマンドはアスタリスクを指定したレベルで使用可能な,すべての情報を表示します。たとえば,HELP COPY * と入力すると, COPY 以下のすべてのサブトピックを表示します。
主キーワードのすぐ後に反復記号 (...) を使用すると,指定したトピックとそのトピックのすべてのサブトピックに関する,すべての情報が表示されます。たとえば HELP COPY... と指定すると, COPY というトピックに関する情報と,COPY の下のすべてのサブトピックに関する情報が表示されます。
アスタリスク (*) とパーセント記号 (%) ワイルドカード文字を,キーワードに指定することはできません。
/EXACT
正確に一致する文字列を検索する場合, /PAGE=SAVE および /SEARCH 修飾子とともに使用します。この時,検索文字列は引用符(" ")で囲まなければなりません。/SEARCH 修飾子を指定せずに /EXACT 修飾子を指定した場合は, Find キー(E1) を押して検索文字列を設定すると正確に一致する文字列を検索できます。
/HIGHLIGHT[=キーワード]
/PAGE=SAVE および /SEARCH 修飾子とともに使用して,検索文字列が見つかった時に強調表示する方法を指定します。文字列が見つかると,その行全体が強調表示されます。キーワードには,BOLD,BLINK,REVERSE,UNDERLINE があり,省略時の設定は BOLD です。/INSTRUCTIONS (省略時の設定)
/NOINSTRUCTIONS
(トピックが指定されていない場合) トピックの一覧とともに, HELP コマンドの説明を表示します。省略時の設定では,HELP 機能の説明と形式,およびトピックの一覧が表示されます。 /NOINSTRUCTIONS 修飾子を指定すると,トピックの一覧だけが表示されます。/LIBLIST (省略時の設定)
/NOLIBLIST
使用できるすべてのヘルプ・ライブラリを表示します。/LIBRARY=ファイル指定
/NOLIBRARY
省略時の設定のライブラリ SYS$HELP:HELPLIB.HLB の代わりに,代替のヘルプ・ライブラリを使用することを指定します。ここで指定したヘルプ・ライブラリはメイン (ルート)・ヘルプ・ライブラリとして使用され,省略時のユーザ定義のヘルプ・ライブラリを検索する前に,このライブラリから HELP 情報を検索します。装置とディレクトリの指定を省略すると,省略時の値として SYS$HELP が使用されます。 SYS$HELP は,システム・ヘルプ・ライブラリの位置を示す論理名です。省略時のファイル・タイプは .HLB です。
省略時のヘルプ・ライブラリを検索しないようにするには, /NOLIBRARY 修飾子を指定します。
/MESSAGE
システム・メッセージの説明を表示します。詳細は,HELP/MESSAGE コマンドの説明を参照してください。
/OUTPUT[=ファイル指定]
/NOOUTPUT
コマンドの出力を送る場所を制御します。省略時の設定では,出力は SYS$OUTPUT に送られます。 SYS$OUTPUT は,現在のプロセスの省略時の設定の出力ストリームまたは装置です。/OUTPUT 修飾子で部分ファイル指定を行う (たとえば /OUTPUT=[JONES]) と,省略時のファイル名は HELP,省略時のファイル・タイプは .LIS になります。アスタリスク (*) およびパーセント記号 (%) ワイルドカード文字を使用することはできません。
/NOOUTPUT 修飾子を指定すると,どこにも出力されません。
/PAGE[=キーワード]
/NOPAGE (省略時の設定)
画面での情報の表示を制御します。/PAGE 修飾子とともに次のキーワードを指定することができます。
CLEAR_SCREEN 各ページを表示する前に画面をクリアします。 SCROLL 一行ずつ情報を表示します。 SAVE[= n] 情報の表示を制御することができます。 n は履歴を保持するページ数です。
/PAGE=SAVE 修飾子を指定すると,最大 5 画面(最大 255 カラムまで)分の履歴を保存できます。/PAGE=SAVE 修飾子を使用すると,次のキーを使用して画面を移動することができます。
キー 説明 Up arrow key, Ctrl/B 1 行ずつスクロールアップ Down arrow key 1 行ずつスクロールダウン Left arrow key 1 カラム左シフト Right arrow key 1 カラム右シフト Find (E1) 文字列検索を起動 Insert Here (E2) 半画面右シフト Remove (E3) 半画面左シフト Select (E4) 80/132 カラム切り替え Prev Screen (E5) 前ページに移動 Next Screen (E6), Return, Enter, Space 次ページに移動 F10, Ctrl/Z 終了(ユーティリティにより異なる場合があります) Help (F15) ユーティリティ・ヘルプ・テキストを表示 Do (F16) 最新(現在)画面と(履歴内で)最古画面の入れ替え Ctrl/W 再表示
/PAGE 修飾子と /OUTPUT 修飾子を同時に指定することはできません。
/PROMPT (省略時の設定)
/NOPROMPT
最初の HELP 要求が処理された後,HELP が会話型モードのセッションを開始するかどうかを制御します。/NOPROMPT 修飾子を指定すると,要求した情報が表示された後,DCL コマンド・レベルに戻ります。/PROMPT 修飾子が有効な場合は,特定のヘルプ・トピックまたはサブトピックを指定するよう要求する,プロンプト (4 つのプロンプトのうちいずれか 1 つ) が表示されます。ヘルプ情報の階層構造のレベルにより,異なるプロンプトが表示されます。次のその 4 つのプロンプトを示します。
- Topic? --- ルート・ライブラリはメイン・ライブラリであり,現在,特定のトピックに関する情報を表示するために HELP を調べていないことを示します。
- [ライブラリ指定] Topic? --- ルート・ライブラリは,メイン・ライブラリ以外のライブラリです。現在,特定のトピックに関する情報を表示するために HELP を調べていないことを示します。
- [キーワード] Subtopic? --- ルート・ライブラリがメイン・ライブラリであり,現在,特定のトピック(または)サブトピックに関する情報を表示するために, HELP を調べていることを示します。
- 上記の 2 と 3 の組み合わせ。
前へ 次へ 目次 索引