如果命令打印零行,我怎样才能运行一个盐状态?

我已经在CentOS7上运行了Salt和SELinux。

我想运行restorecon -Rv /path/to/something ,但只有在必要的时候。 我知道盐有唯一的, unless命令,但我有一个时间search我想要的东西。 我想写些东西来达到这个效果:

 Fix SELinux Permissions: cmd.run: - name: restorecon -Rv /path/to/something - onlyif: restorecon -Rv -n /path/to/something produces any lines 

我已经尝试了返回码,但是这总是0.我实际上并不想每次运行状态运行这个命令 – 只是当dir实际上需要更改时。 否则盐会报告它运行的命令,即使没有真正的变化

我怎样才能以我想要的方式工作?

它看起来像这样会做我想要的:

 restore selinux permissions: cmd.run: - name: restorecon -Rv /path/to/folder/ - onlyif: - "if [[ $(restorecon -Rv -n /path/to/folder/) ]]; then exit 0; else exit 1; fi"