Назад | Перейти на главную страницу

Cfengine Выполнить действие на основе значения переменной

В cfengine у ​​меня есть переменная, которая задает вывод команды. Допустим, для переменной myoutput установлено значение «привет мир». Как я могу выполнить команду на основе содержимого myoutput.

Я бы хотел сделать что-то вроде этого (код sudo cfengine):

bundle agent test
{

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

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

Для этого есть функция 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 () совпадает с ожидаемым.