Unix shell脚本中的Control-m JOBNAME
如何在unixshell(ksh)脚本中检索control-mjobname 从我读到的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
%%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)访问该值