标签: ruby
我发现你可以从ruby运行一个外部命令,如:
command = "find /home/user/workspace -name *.java" %x(#{command})
并且它对于不会花费太多时间执行的命令很有用,但对于像上面那样的命令,这需要花费更多时间并逐步输出结果,我无法看到结果直到命令完成。
我想要的是具有与直接从shell运行命令时相同的外观和感觉,在这种特殊情况下,只要找到文件,就可以在控制台上显示它。 这可能吗?
答案 0 :(得分:1)
使用IO.popen或Open3。
IO.popen
Open3
IO.popen("echo 1; sleep 1; echo 2; sleep 1; echo 3") do |io| io.each_line do |line| puts line end end