使用rake sh时如何检索命令的输出?

时间:2009-09-17 23:41:14

标签: ruby rake

我正在使用sh运行命令,需要读取该命令的输出。 e.g。

sh“whoami”

但是sh似乎只返回true,而不是包含whoami命令输出的字符串。有谁知道解决方案?

3 个答案:

答案 0 :(得分:15)

有几种方法:

output = `whoami`

#or

output = %x[whoami]

# or using 'system' but in case of errors it's gonna return false

output = system "whoami"

答案 1 :(得分:6)

只需使用反引号来执行语句:

output = `whoami`

结果将在'output'变量中。

答案 2 :(得分:1)

我不知道如何让其他方法在出错时失败,所以我选择了重定向:

sh "mysql --verbose #{connection_options} < #{sql_file} > #{sql_file_output_file}" do |ok, status|
  ok or fail "mysql file failed [#{sql_file}"
end