【发布时间】:2015-01-24 18:59:06
【问题描述】:
如何在 unix shell (ksh) 脚本中检索 control-m JOBNAME
从我读到的%%JOBNAME 应该给我JOBNAME,但unix 不支持%%JOBNAME。我试过了,但没有成功
我也尝试过使用$JOBNAME,但也没有用
【问题讨论】:
如何在 unix shell (ksh) 脚本中检索 control-m JOBNAME
从我读到的%%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任务的job中定义一个参数。将参数命名为 PARM1(或 PARM2)并为其指定值 %%JOBNAME。在 unix 脚本中,您将使用 $1(或 $2)访问该值。
【讨论】: