我的简单测试程序:
pid = Process.spawn("sleep 10;date")
如何放置" date"的输出(例如stdout)?变量中的命令何时可用?我不想使用文件进行数据交换。
答案 0 :(得分:2)
有一个whole bunch of ways来运行Ruby的命令。最简单的情况是使用backticks,它捕获输出:
`sleep 10; date`
# "Tue Jun 23 10:15:39 EDT 2015\n"
如果您想要与Process.spawn
更相似的内容,请使用open3 stdlib:
require 'open3'
stdin, stdout, wait_thr = Open3.popen2("sleep 10; date")
stdin.close
Process.wait(wait_thr.pid)
stdout.read
# "Tue Jun 23 10:15:39 EDT 2015\n"
stdout.close