我IO.popen在Ruby中使用它来循环运行一系列命令行命令。然后,我需要在循环外部运行另一个命令。直到循环中的所有命令都终止后,循环外部的命令才能运行。
IO.popen
我如何使程序等待这种情况发生?目前,最终命令运行得太早。
一个例子:
for foo in bar IO.popen(cmd_foo) end IO.popen(another_cmd)
因此cmd_foos,在another_cmd运行之前所有需要返回的内容。
cmd_foos
another_cmd
我认为您需要将IO.popen循环内调用的结果分配给变量,并继续调用read()它们,直到eof()所有变量变为真为止。
read()
eof()
然后,您知道所有程序都已完成执行,就可以开始了another_cmd。