6

Web 上のすべての測定値に基づいて、 と の違いbackticksystem返されます。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

4

1 に答える 1

1

この質問を「未回答」フィルターから削除するために、編集した質問本文から回答をコピーします。

答えが出ました。ここにあります https://gist.github.com/3730986

~ nodejs99ごとの回答

于 2013-10-10T06:13:32.697 に答える