Web 上のすべての測定値に基づいて、 と の違いbacktick
がsystem
返されます。backtick
は STDOUT をsystem
返しtrue
、 またはを返しますfalse
。
そして、どちらもサブシェルを使用して操作を実行すると言われました。
しかし、私は別の違いに気づいています。
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。