Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix shell脚本中的Control-m JOBNAME_Unix_Control M - Fatal编程技术网

Unix shell脚本中的Control-m JOBNAME

Unix shell脚本中的Control-m JOBNAME,unix,control-m,Unix,Control M,如何在unixshell(ksh)脚本中检索control-mjobname 从我读到的%%JOBNAME应该给我JOBNAME,但unix不支持%%JOBNAME。我试过了,但没有成功 此外,我还尝试使用$JOBNAME,但它也不起作用首先,您必须将本地%%JOBNAME变量转换为全局变量,您可以很容易地从作业表单中执行此操作 一旦您有了一个全局变量,CTM服务器/代理就包含了一个ctmvar实用程序。 您可以使用它将Control-M全局自动编辑变量读入可编写脚本的shell环境,如bash

如何在unixshell(ksh)脚本中检索control-mjobname

从我读到的
%%JOBNAME
应该给我JOBNAME,但unix不支持
%%JOBNAME
。我试过了,但没有成功


此外,我还尝试使用
$JOBNAME
,但它也不起作用

首先,您必须将本地
%%JOBNAME
变量转换为全局变量,您可以很容易地从作业表单中执行此操作

一旦您有了一个全局变量,CTM服务器/代理就包含了一个ctmvar实用程序。 您可以使用它将Control-M全局自动编辑变量读入可编写脚本的shell环境,如bash,如下所示:

UNIXVAR=$(ctmvar -action list | grep %%CTMGLOBALVARIABLENAME | awk '{print $2}')
要执行相反操作并从unix shell变量设置CTM全局变量,请执行以下操作:

ctmvar -action set -var "%%\CTMGLOBALVARIABLE" -varexpr "$UNIXVAR"

我一直在用shell脚本来实现这一点,而且效果非常好。需要注意的一点是,一旦设置了全局变量,所有代理和服务器都可以通过相同的变量名看到该变量,因此请小心使用唯一的变量名,以免自作主张,另外,您还需要自己清理,否则会留下大量全局变量。

最简单的方法是在提交unix任务的作业中定义一个参数。将参数命名为PARM1(或PARM2),并为其指定值%%JOBNAME。在unix脚本中,您将使用$1(或$2)访问该值