在DCL中运行带参数的程序并保存输出

时间:2016-02-25 01:21:48

标签: openvms dcl

我正在尝试运行程序并在DCL中获取输出值。

在Linux平台脚本中如下

result=$(./tool -e $parameter1 $parameter2 )
echo "result:" $result

我尝试在HP openVMS平台上执行相同的脚本,但失败了。

有人可以提供样品或给我一些提示吗?

非常感谢。

参考: How to assign the output of a program to a variable in a DCL com script on VMS?

3 个答案:

答案 0 :(得分:0)

您的“工具”的结果是什么?只要它是一行,对类似的最近问题How to store a result to a variable in HP OpenVMS DCL?的答案可能有所帮助。除此之外,使用带有临时输出文件的管道命令可能是最简单的解决方案。像

这样的东西
$ PIPE tool -e argument1 argument2 >tmp.txt
$ TYPE tmp.txt

如果您不知道如何将参数传递给“工具”,请参阅how to run a c program with reading command line parameters in openvms?

答案 1 :(得分:0)

如果要在OpenVMS中重定向sys $输出,可以执行

1)$ define/user sys$output file.lis

这意味着对于下一个图像激活,输出将进入file.lis

例如,命令

mc authorize sh system

只会回复提示 如果你再发一次

mc authorize sh system

它将在屏幕上“正常”显示

变体是

define sys$output file.lis my_command my_other_command deassign sys$output

所有命令的输出都将转到file.lis,直到您取消分配sys $ output

2)@my_script.com/output=file.lis

您运行OpenVMS脚本,输出转到file.lis

3)@tt:/output=file.lis @myscript CTRL Z

退出 类似于2)

这用于退出“强制命令程序”

答案 2 :(得分:0)

我想你想检查$ STATUS DCL变量的值。