ruby のバッククォートとsystem()の違い

rubyで外部コマンド呼び出しにはバッククォートとsystem()というのがある。
バッククォートだと標準出力が返り値になってsystem()だとコマンドが成功したかを返す。

>> str = system("valid command")
=> true
>> str
=> true
>> str = `valid command`
=> "command output\n"
>> str
=> "command output\n"
>> str = system("invalid command")
error message
=> false
>> str
=> false
>> str = `invalid command`
error message
=> ""
>> str
=> ""

みたいなかんじ。