下一个案例:
test3 = Mixlib::ShellOut.new("echo '1'")
test4 = Mixlib::ShellOut.new("mysql -u root --silent --skip-column-names --password='rootpass' -e 'some sql;'")
test3.run_command
test4.run_command
puts test3.stdout # => 1
puts test4.stdout # => empty string, nothing
期望 test4 返回结果作为 test3
我想也许 mysql 返回的结果不是标准输出,那么我在哪里以及如何得到结果
P.S 我知道 ruby gem mysql2,我可以用它来做这些事情,但老实说,没有时间实现这样的事情只是为了得到一个简单的 SQL 结果,我也试过运行命令而不用 --silent 和--skip-column-names 标志,这也无济于事。
最佳答案
所以问题是,我的命令返回代码 exit 1,它似乎失败了,所以在修复它工作的命令后,问题是使用单逗号而不是双逗号
关于mysql - Chef ruby_block ShellOut mysql 结果 stdout 永远为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51721449/