【发布时间】:2021-05-23 08:28:03
【问题描述】:
我正在使用系统 curl,因为我无法让 ruby curl 工作。如何将 curl 的输出输入到我的 ruby 变量中?下面的例子说明变量没有得到curl的输出
url1="\"https://ca.yahoo.com/\""
a=Kernel.system "curl #{url1}"
irb(main):026:0> a
=> true
【问题讨论】:
标签: ruby
我正在使用系统 curl,因为我无法让 ruby curl 工作。如何将 curl 的输出输入到我的 ruby 变量中?下面的例子说明变量没有得到curl的输出
url1="\"https://ca.yahoo.com/\""
a=Kernel.system "curl #{url1}"
irb(main):026:0> a
=> true
【问题讨论】:
标签: ruby
Kernel#system 仅返回 true、false 或 nil,因此您无法以这种方式捕获命令输出。相反,使用Kernel#`(或其替代%x{} 语法)来捕获标准输出。例如:
url = 'https://ca.yahoo.com/'
output = %x(curl "#{url}")
对于更复杂的事情,您可能还想查看 Ruby 标准库中的 Open3 module。它有多种支持管道的方法,必要时有不同的方式分别处理标准输入、标准输出和标准错误。
【讨论】: