Cfengine根据变量值执行操作

Cfengine根据变量值执行操作

在 cfengine 中,我有一个变量,设置为命令的输出。假设变量 myoutput 设置为“hi world”。我如何根据 myoutput 的内容执行命令。

我想做这样的事情(sudo cfengine 代码):

bundle agent test
{

    vars:
        "myoutput" string => execresult("echo 'hi world';","noshell");

    commands:
        myoutput=="hi world"::
            "/usr/bin/php myaction.php";  
}

答案1

有一个 strcmp() 函数可以实现这个功能:https://cfengine.com/archive/manuals/cf3-Reference#Function-strcmp

尝试这个:

bundle agent test
{
vars:
    "expected" string => "hi world";
    "myoutput" string => execresult("/bin/echo 'hi world'","noshell");

classes:
"equal" expression => strcmp($(myoutput),$(expected));

reports:
  equal::
    "output is AS expected: $(myoutput)";
     # do other stuff                                                                                                                                     
}

如果 execresult() 的输出与预期输出相同,则设置类“相等”。

相关内容