我正在尝试学习Ruby,看到了这篇博客文章http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby/,其中介绍了不同的命令执行方法,如Kernel#exec和Kernel#system。他的示例文件有两行代码。
#!/usr/bin/env ruby
puts "out"
STDERR.puts "error"
他会注意到,无论何时运行一个命令,都会记录输出是否被捕获。例如,在这里标准输出(STDOUT)被捕获了,但错误输出(STDERR)没有。
>> `./err.rb`
err
=> "out\n"
但是这为什么很重要呢?无论输出是否被“捕获”,在实际应用中有什么区别。我试图在我的Ruby书中找到答案,但没有成功。
感谢您的解释。