ruby – 如何等待进程完成使用IO.popen?

我在Ruby中使用IO.popen在循环中运行一系列命令行命令.然后我需要在循环之外运行另一个命令.循环之外的命令不能运行,直到循环中的所有命令都终止为止.

如何使程序等待这种情况发生?目前最终的命令运行得太早了.

一个例子:

for foo in bar
    IO.popen(cmd_foo)
end
IO.popen(another_cmd)

所以所有cmd_foos需要返回之前another_cmd运行.

解决方法

我想你需要将循环内的IO.popen调用的结果分配给变量,并继续调用read(),直到eof()变为true为止.

然后你知道所有的程序都完成了执行,你可以启动另一个_cmd.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...