Puppet exec,除非不';I don’’我似乎没有达到我的预期

Puppet exec,除非不';I don’’我似乎没有达到我的预期,puppet,Puppet,我正在尝试从mysql克隆一个带有exec的db,但如果它已经被克隆,我不想克隆它 exec { "clone_from_${name}" : unless => "/usr/bin/mysql -u${user_to} -p${pwd_to} ${name_to} -e'select count(*) from $test_table_name;' | grep -c ' 0 '", ... 逻辑看起来有点混乱,但基本上,我的理解是,如果命令返回0,那么整个exec将不会运行。但是

我正在尝试从mysql克隆一个带有exec的db,但如果它已经被克隆,我不想克隆它

exec { "clone_from_${name}" :
  unless => "/usr/bin/mysql -u${user_to} -p${pwd_to} ${name_to} -e'select count(*) from $test_table_name;' | grep -c ' 0 '",
...
逻辑看起来有点混乱,但基本上,我的理解是,如果命令返回0,那么整个exec将不会运行。但是当我尝试它的时候,它是

db已经在vm中创建,如果它已经被克隆,则查询返回的计数将给出除“0”之外的其他值,而grep因为找不到“0”而返回0。除非你能让它运行,对吗

输出甚至给我“除非:0” 然后“执行”
谢谢。

重要的是现有代码,而不是打印的数字

如果手动运行此命令,然后执行
echo$?
,则会得到exitcode

此外,您还希望超出命令的输出:

exec { "clone_from_${name}" :
  unless => "/usr/bin/mysql -u${user_to} -p${pwd_to} ${name_to} -e'select count(*) from $test_table_name;' | grep ' 0 ' > /dev/null 2>&1",
...

重要的是exitcode,而不是打印的数字

如果手动运行此命令,然后执行
echo$?
,则会得到exitcode

此外,您还希望超出命令的输出:

exec { "clone_from_${name}" :
  unless => "/usr/bin/mysql -u${user_to} -p${pwd_to} ${name_to} -e'select count(*) from $test_table_name;' | grep ' 0 ' > /dev/null 2>&1",
...

“0”之后不应该有>吗?在“0”之后不应该有>吗?