gpt4 book ai didi

Ruby - 在控制台上显示反引号输出

转载 作者:数据小太阳 更新时间:2023-10-29 08:07:26 25 4
gpt4 key购买 nike

在 Ruby 中,我使用反引号来执行(许多)shell 命令。如何在控制台上显示 shell 命令输出?

再详细一点。如果我运行如下的(ansible)命令,我会在控制台上得到很多的滚动输出:

% ansible-playbook config.yml -e foo=bar -e baz=qux

PLAY [base setup] **************************************************************

TASK [setup] *******************************************************************
ok: [10.99.66.210]

... etc, etc

但是,如果我从 Ruby 执行相同的命令(使用反引号),我在控制台上看不到任何输出:

# cmd = ansible-playbook config.yml -e foo=bar -e baz=qux
`#{cmd}`

不幸的是,我想查看输出以便进行调试。我可以将 Ruby 脚本的输出重定向到一个(尾部)日志文件,但是我想看到它发生时的输出。

最佳答案

感谢David K-J的评论,以及Ruby—Open3.popen3

我的解决方案是 Open3#popen2e ,例如:

# cmd = ansible-playbook config.yml -e foo=bar -e baz=qux
puts cmd
if execute then
puts "Executing..."
Dir.chdir("..") do
Open3.popen2e(cmd) do |i,oe,t|
oe.each { |line| puts line }
end
end
end

关于Ruby - 在控制台上显示反引号输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36056569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com