隐藏系统命令导致ruby
在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"
最简单的一个是重定向stdout 🙂
system "curl ... 1>/dev/null" # same as `curl ... 1>/dev/null`
要在不修改命令的情况下使其与system
一起使用:
system('curl ...', :err => File::NULL)
资源