6

backtick根据我在网上的所有阅读资料,和之间的区别system是返回的内容。backtick返回 STDOUT 而system返回trueor false

有人告诉我,他们都使用 subshel​​l 来执行操作。

但是我注意到另一个不同之处。

output = system('aaa')
puts "output is: #{output}"

output = `aaa`
puts "output is: #{output}"

上面代码的结果是

$ ruby test.rb
output is: 
lab.rb:4:in ``': No such file or directory - aaa (Errno::ENOENT) from test.rb:4:in `<main>'

因此,似乎在backtick向主程序引发异常的情况下。操作system吞下异常,主程序永远不会看到异常。

我正在使用 ruby​​ 1.9.3 。

我的分析对吗?

更新:得到了答案。它在这里https://gist.github.com/3730986

4

1 回答 1

1

从已编辑的问题正文中复制答案,以便从“未回答”过滤器中删除此问题:

得到了答案。它在这里https://gist.github.com/3730986

〜回答每个nodejs99

于 2013-10-10T06:13:32.697 回答