Techioz Blog

Ruby での system() 呼び出しの出力の取得

概要

Ruby で Kernel#system を使用してコマンドを呼び出した場合、その出力はどのように取得すればよいですか?

system("ls")

解決策

カオスの答えを少し拡張して明確にしたいと思います。

コマンドをバッククォートで囲んだ場合は、system() を (明示的に) 呼び出す必要はまったくありません。バックティックはコマンドを実行し、出力を文字列として返します。次に、次のように値を変数に割り当てることができます。

output = `ls`
p output

または

printf output # escapes newline chars