openvms - OpenVMS 中的 DCL 符号语法

标签 openvms dcl

我真的对 OpenVMS 的 DCL 中的一些语法感到困惑。例如,这些是一些让我感到困惑的行:

$    wo = "write sys$output"

它是否创建了一个符号 wo 用于写入 sys$output?

$ 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. 是什么意思?平等的?我也看过.ne。 , .eqs。也。它们有什么不同?

为什么“and”和“or”被两个点包围?特定于 DCL 的语法?

最佳答案

从内存中:$ wo = "write sys$output" 就像你说的那样,将 wo 指定为 "write sys$output"的别名,VMS 相当于 Unix 标准输出。

.nes. 是“不等于字符串”,而 .ne. 是数字“不等于”。

p1 是您猜到的(第一个)参数。我不记得它是从 p1 到 p9 还是更多,或者是否没有任意限制。 p0 可能是程序名称,如 Python 的 sys.argv[0]。

一个命令过程最多接受 8 个参数,称为 P1 .. P8。

单引号 (') 插入以下变量名称,因此 wo "BILLING_RUN_NUMBER = ''billing_run_number'" 将输出,例如 BILLING_RUN_NUMBER = '42' ,假设 p1 等于 42。我不记得当 DCL 看到这样的连续两个单引号时如何知道该怎么做...

官方的咒语是''symbol',将实际的DCL文本替换为symbol的值

这至少可以帮助您入门...大多数使用 VMS 的商店在 3 环 Binder 中都有几百磅的文档。四处打听。

关于openvms - OpenVMS 中的 DCL 符号语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568618/

相关文章:

assembly - Openvms/Itanium 程序集示例中的 "Hello World"?

unix - 在 VMS 中,unix 的等效命令是什么

c - OpenVMS定时器精度,优于毫秒精度。

c - 按字母顺序排列二维数组

vms - 在 dcl 脚本中隐藏错误消息

java - 为什么静态单例是避免 'DCL' 的简单而优雅的解决方案?