日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
INQUIRE |
値を SYS$COMMAND ( 通常は,会話型モードのターミナル,または主コマンド・プロシージャの次の行 ) から読み込んで,シンボルに割り当てます。
INQUIRE シンボル名 [プロンプト文字列]
シンボル名
値を割り当てる,1 〜 255 文字までの英数字シンボルを指定します。プロンプト文字列
INQUIRE コマンドを実行するときに表示されるプロンプトを指定します。文字列は,自動的に大文字に変換されます。また,先行スペースと先行タブおよび後続のスペースと後続のタブは削除され,文字の間の複数のスペースおよびタブは1 つのスペースに圧縮されます。プロンプトに,小文字や句読点,複数のスペースとタブ,アット・マーク(@) が含まれる場合には,文字列を二重引用符 (" ") で囲みます。プロンプト文字列に二重引用符を使用する場合には,文字列全体を二重引用符で囲み,文字列の中で二重引用符が存在する場所に連続する 2 つの二重引用符 ("")を指定します。
システムがプロンプト文字列をターミナルに表示する場合,通常は文字列の最後にコロン (:) とスペースを表示します ( /PUNCTUATION 修飾子を参照してください )。
プロンプト文字列を指定しない場合には,コマンド・インタプリタは,値を要求するプロンプトとしてシンボル名を使用します。
INQUIRE コマンドは,プロセスの作成時に確立された入力ストリームにプロンプト・メッセージを表示し,入力ストリームからの応答を読み取ります。つまり,INQUIRE コマンドは,会話型で実行されているコマンド・プロシージャで実行される場合,コマンド・プロシージャのネスト・レベルにかかわらず,プロンプト・メッセージは常に端末に表示されます。コマンド・プロシージャの INQUIRE コマンドの入力は,RECALL バッファに入ることに注意してください。プロンプト文字列に対する応答を入力した場合,その値は,指定されたシンボルに文字列として割り当てられます。小文字は自動的に大文字に変換され,先行および後続のスペースとタブが削除され,文字の間の複数のスペースとタブが単一のスペースに圧縮されます。大文字への変換を禁止し,スペースとタブをそのまま残す場合は,文字列を二重引用符で囲みます。
プロンプト文字列に対する応答を入力する場合,シンボルまたはレキシカル関数を使用するためには,単一引用符 (` ') を使用してシンボルの置換を要求します。
端末から会話型でデータを取得するには,READ コマンドも使用できることに注意してください。READ コマンドは,ユーザが入力したとおりにデータを受け付けます。文字は,自動的には大文字に変換されず,スペースは圧縮されません。ただし,一重引用符を使用してシンボルの置換を要求しても,シンボルとレキシカル関数は変換されません。
バッチ・ジョブに INQUIRE コマンドを入力すると,コマンドは,コマンド・プロシージャの次の行から応答を読み取ります。プロシージャがネストしている場合,第 1 レベルのコマンド・プロシージャから応答が読み取られます。バッチ・ジョブのコマンド・プロシージャの次の行がドル記号 ($) で始まる場合,その行は INQUIRE に対する応答でなく,コマンドとして解釈されます。次に INQUIRE コマンドは,指定されたシンボルに空文字列を割り当て,バッチ・ジョブは INQUIRE コマンドの次の行のコマンドから処理を続けます。
/GLOBAL
シンボルが,グローバル・シンボル・テーブルに登録されることを指定します。 /GLOBAL 修飾子を指定しない場合には,シンボルはローカル・シンボル・テーブルに登録されます。/LOCAL (省略時の設定)
シンボルが,現在のコマンド・プロシージャのローカル・シンボル・テーブルに登録されることを指定します。/PUNCTUATION (省略時の設定)
/NOPUNCTUATION
ターミナルにプロンプトが表示されるときに,そのプロンプトのあとにコロン(:) とスペースが出力されるかどうかを制御します。コロンとスペースを出力しない場合には,/NOPUNCTUATION を指定します。
#1 |
---|
$ INQUIRE CHECK "Enter Y[ES] to continue" $ IF .NOT. CHECK THEN EXIT |
この INQUIRE コマンドは,ターミナルに次のプロンプト・メッセージを表示します。
Enter Y[ES] to continue:
INQUIRE コマンドは,上記のようなプロンプトを表示し, CHECK というシンボルに割り当てられる値を要求します。 IF コマンドは,シンボル CHECK に割り当てられた値を評価します。 CHECK に割り当てられた値が真 ( つまり,奇数の数値,T,t,Y,y から始まる文字列,あるいは奇数の数字列 ) の場合には,プロシージャは実行を継続します。
CHECK に割り当てられた値が偽 ( つまり,偶数の数値,T,t,Y,y 以外の文字から始まる文字列,あるいは偶数の数字列 ) の場合には,プロシージャの実行は終了します。
#2 |
---|
$ INQUIRE COUNT $ IF COUNT .GT. 10 THEN GOTO SKIP . . . $ SKIP: |
この INQUIRE コマンドは,次のメッセージを表示し, COUNT に割り当てられる値を要求します。
COUNT:
このあと,このコマンド・プロシージャは, COUNT というシンボルに割り当てられた値を評価し,次に続くコマンドを実行するのか,あるいは制御を SKIPというラベルの行に渡すのかを判断します。
#3 |
---|
$ IF P1 .EQS. "" THEN INQUIRE P1 "FILE NAME" $ FORTRAN 'P1' |
この IF コマンドは,P1 というシンボルが空文字列であるかどうかを調べることで,パラメータがコマンド・プロシージャに渡されたかどうかを調べます。このシンボルの値が空文字列の場合には,パラメータが指定されていないので, INQUIRE コマンドを実行してパラメータを要求します。 P1 が指定されていた場合には,INQUIRE コマンドは実行されず, Fortran コマンドがパラメータに指定された名前のファイルをコンパイルします。
目次 | 索引 |
|