我有一个包含 ruby_block 的 Chef 食谱,其中包含:
myoutput = `keytool -import -alias #{al} -keystore #{ks} -storepass #{pw} -file #{ca} -trustcacerts -noprompt`
puts ":" + myoutput + ":"
Chef::Log.error('Error installing CA Cert') unless myoutput.include? "Certificate was added to keystore"
(所有变量都已正确设置。)以下是相关输出:
Certificate was added to keystore
::
[2013-07-03T21:26:41-07:00] ERROR: Error installing CA Cert
注意 ::。为什么 myoutput 设置不正确?当我手动运行该命令时,我得到了预期的输出。反引号中的命令做了它应该做的事情,所以我知道它正在运行,但由于某种原因,命令的标准输出没有分配给 myoutput,我不知道为什么。有任何想法吗?谢谢——戴夫
编辑:原因是因为这个特定的“keytool”调用的输出是stderr,而不是stdout。