Control-M运行时变量:sh vs powershell

问题描述

我在control-m中遇到了运行时变量的问题。
我必须将一些powershell脚本迁移到linux shell,并且在执行过程中它的工作方式不同。

通常,powershell脚本如下所示:

    write-HOST "SOME_VARIABLE_NO2=OTHER_VAL2"
    write-HOST "SOME_VARIABLE_NO3=OTHER_VAL3"
    write-HOST "SOME_VARIABLE_NO4=OTHER_VAL4"

Linux脚本是

    #!/bin/sh

    echo "SOME_VARIABLE_NO2=OTHER_VAL2"
    echo "SOME_VARIABLE_NO3=OTHER_VAL3"
    echo "SOME_VARIABLE_NO4=OTHER_VAL4"

现在,在执行过程中,我有以下输出

  1. 对于Powershell:
>SOME_VARIABLE_NO2=OTHER_VAL2
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO2' ==> 'OTHER_VAL2'] 
>
>SOME_VARIABLE_NO3=OTHER_VAL3
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO3' ==> 'OTHER_VAL3'] 
>
>SOME_VARIABLE_NO4=OTHER_VAL4
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO4' ==> 'OTHER_VAL4'] 
  1. 对于Linux
>SOME_VARIABLE_NO2=OTHER_VAL2
>SOME_VARIABLE_NO3=OTHER_VAL3
>SOME_VARIABLE_NO4=OTHER_VAL4
>
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO3' ==> 'OTHER_VAL3'] 
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO2' ==> 'OTHER_VAL2'] 
>[Extracted runtime parameter: 'RT_SOME_VARIABLE_NO4' ==> 'OTHER_VAL4'] 

如何使bash和control-m与ps1&control-m执行相同的方式?这与control-m配置有关吗?

在powershell中,write-host命令可以在执行此行后立即分配变量值。在bash中,整个脚本必须在变量值被良性分配之前执行。我正在寻找一种解决方案,允许control-m在Powershell中工作时在bash中分配变量-执行特定的行后

我在执行过程中需要这些变量,因为它们存储例如流程的PID,以便我可以出于任何原因将其杀死

我必须承认,我不知道control -m是如何工作的。我可以向有访问权限的人提问,但目前我什至不知道该问什么。

解决方法

在这种情况下,最佳实践是使用Control-M作业定义存储变量。

在Job Def中,第一个选项卡的中间是变量字段。在这里,您可以使用%% PARMn特殊的Control-M变量,如下所示-

类型.......名称.................................值
本地...... SOME_VARIABLE_NO1 .... OTHER_VAL1
本地...... SOME_VARIABLE_NO2 .... OTHER_VAL2
本地...... SOME_VARIABLE_NO3 .... OTHER_VAL3
本地...... PARM1 ............................... SOME_VARIABLE_NO1
本地...... PARM2 ............................... SOME_VARIABLE_NO2
本地...... PARM3 ............................... SOME_VARIABLE_NO3

Local表示变量的范围仅限于这一作业/脚本(您可以使用不同的范围,一直到Global为止)。

值%% PARM1,%% PARM2等将由$ 1,$ 2等反映。

BMC在其频道上有此视频指南-

https://www.youtube.com/watch?v=nPKbOh8tUNU

这里也有很好的指南-

https://communities.bmc.com/message/832637#832637