如何从 Ruby 中的分叉/派生进程获取 return 值?
How to get return value from a forked / spawned process in Ruby?
我的简单测试程序:
pid = Process.spawn("sleep 10;date")
如何将 "date" 命令的输出(例如 stdout)放入可用的变量中?我不想使用文件进行数据交换。
有一个whole bunch of ways to run commands from Ruby. The simplest for your case is to use backticks,捕获输出:
`sleep 10; date`
# "Tue Jun 23 10:15:39 EDT 2015\n"
如果您想要更类似于 Process.spawn
的内容,请使用 open3 标准库:
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
我的简单测试程序:
pid = Process.spawn("sleep 10;date")
如何将 "date" 命令的输出(例如 stdout)放入可用的变量中?我不想使用文件进行数据交换。
有一个whole bunch of ways to run commands from Ruby. The simplest for your case is to use backticks,捕获输出:
`sleep 10; date`
# "Tue Jun 23 10:15:39 EDT 2015\n"
如果您想要更类似于 Process.spawn
的内容,请使用 open3 标准库:
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