在 ruby 中隐藏系统命令的结果有多容易?例如,我的一些脚本运行
system "curl ..."
而且我不想看到下载的结果。
如果您愿意,可以使用更复杂的popen3分别控制 STDIN、STDOUT 和 STDERR:
Open3.popen3("curl...") do |stdin, stdout, stderr, thread|
# ...
end
如果您想使某些流静音,您可以忽略它们,或者如果重定向或解释该输出很重要,您仍然可以使用它。
除了 popen 最简单的方法:
使用 %x 代替系统。它会自动管道
rval = %x{curl ...} #rval will contain the output instead of function return value
手动管道到 /dev/null。在类似 UNIX 的系统中工作,而不是在 Windows 中工作
system "curl ... > /dev/null"
最简单的一种是重定向标准输出 :)
system "curl ... 1>/dev/null"
# same as
`curl ... 1>/dev/null`