2011-07-04 5 views
3

私はOpenVMSのDCLの構文によって実際に混乱しています。例えば、これらは私を混同線の一部されていますOpenVMSのDCLシンボル構文

$ wo = "write sys$output" 

それは書き込みのSYS $ OUTPUTのシンボルwoを作成していますか?

$ billing_run_number == p1 

p1パラメータは実行時に.comファイルに渡されますか?いくつのパラメータを供給できますか?

$ wo "BILLING_RUN_NUMBER = ''billing_run_number'" 

"abc"はシンボルabcの内容で置き換えられていますか?なぜそれは 'abc'ですか、 'abc'ではないのですか?私たちは ""使うことができますか?

$ if ((status .nes. "P") .and. (status .nes. "M")) .or. (ftp_status .nes. "Y") 

.nes.とは何ですか?等しい?私も見たことがある。 、eq。あまりにも。それらの違いは何ですか?

なぜ「and」と「or」は2つの点で囲まれていますか? DCL固有の構文ですか?

理解しやすい無料のオンラインチュートリアルがあればいいですか?皆さん、ありがとうございました!

答えて

4

メモリから:$ wo = "write sys$output"あなたは「write sys $ output」のエイリアスを割り当てて、VMSはUnix stdoutに相当します。

.nes.は、数値が「等しくない」.ne.と比較して、「文字列と等しくありません」です。

p1は、推測したように(最初の)パラメータです。私はそれがp9からp9、またはそれ以上になるかどうか、または任意の制限がないかどうかはわかりません。 p0はPythonのsys.argv [0]のようにプログラム名であるかもしれません。

コマンドプロシージャは、P1 .. P8という8つのパラメータを受け入れます。

単一引用符( ')は、それは、単一の2を見たときに、そうwo "BILLING_RUN_NUMBER = ''billing_run_number'"は、例えば、BILLING_RUN_NUMBER = '42'、仮定P1は、私はDCLは何をすべきか知っているかを正確に思い出すことができない42に等しい出力だったでしょう、次の変数名を補間しますそのような行の引用符...

公式呪文はあなたが少なくとも始めるよシンボル

の値によって置き換えられ、実際のDCLテキストを持っている「」シンボル」です...ほとんどのお店VMSを使用している人は、3輪のバインダーで数百ポンドの文書を持っています。尋ねる

1

実行時にp1パラメータが.com ファイルに渡されますか?何個のパラメータを と一緒に供給できますか?

最大8つのパラメータを渡すことができます。それぞれがP1、P2 ...と定義されていますP8

あなたは8つの以上のパラメータが必要な場合は、トリック@my_dcl "my_p1"

のような "my_p2" "my_p3" "my_p4" "my_p5" "my_p6" "my_p7" を使用することができます "my_p8 my_p9 my_p10"

my_dclには、P8の値は1つの文字列に "my_p8 my_p9 my_p10"という値が含まれます。 "BILLING_RUN_NUMBER = '' billing_run_number」"

WO

$です '' ABC 'シンボルABCの内容 によってsubstituded?それはなぜですか? 'abc' 'abc'ではなく?私たちは ""使うことができますか?

$ if((状態.nes。 "P").and。(状態 .nes。 "M")).or。 (ftp_status .nes。 "Y")

一重引用符は、文字列の内容を翻訳することを意味します。あなたはwo = "write sys$output"

を定義した場合

だから、あなたは

wo "Hello World!" 

または

'wo "Hello World!" 

を使用することができます。しかし、あなたがしようとした場合write sys$output Hello World

を表示するために何をしたい場合は、

wo "'wo Hello World!" 

'wo Hello World!

だから、あなたは、単一引用符で囲む必要がありwoはあなたが取得します。

最初の2つはエスケープされた一重引用符であり、最後の1つは翻訳を停止することを意味します。

wo "'' wo 'Hello World!'他のスクリプト言語と同様に


、あなたは変数の変数を持つことができます...

var_hidden = "Hello world!" 
my_var = "var_hidden" 
wo 'my_var' 

はこんにちは、世界が印刷されます!

2

上記のドキュメントに加えて、HELP HINTS、HELP =、HELP =、およびHELP @コマンドによる広範な情報もあります。 P9-P16はOpenVMS V8.4で利用できるようになりました。

グローバルシンボル(二重等号{== or:==})とローカルシンボル(等号{=または:=}で定義)の違いにも注意してください。大文字と小文字が区別される言語のように、A = 1で定義されたシンボルは、定義されたものとは異なるシンボルA == 1であり、ローカルシンボルはグローバルシンボルへの参照をマスクすることができます。 \

コマンドSET SYMBOL/SCOPE [= {LOCAL | NOLOCAL}、{GLOBAL | NOGLOBAL})は、特定のタイプを見ることができるかどうかに影響を与える可能性があります。シンボルの

通常、可能な限りローカルシンボルを使用してください。通常、上位レベルの(呼び出し元の)コマンドプロシージャにアクセスする必要がある場合、または対話型DCLに戻るときにシンボルがまだ定義されている必要がある場合は、例外はあなたが実行するグ​​ローバルシンボルを読み書きしたり作成したりするプログラムです。まれですが、私はいくつかを実行しました。

関連する問題