Как я могу получить вывод моей команды при использовании rake sh? - PullRequest
17 голосов
/ 18 сентября 2009

Я запускаю команду, используя sh, и мне нужно прочитать вывод этой команды. например,

sh "whoami"

Но кажется, что sh возвращает true, а не строку, содержащую выходные данные команды whoami. Кто-нибудь знает решение?

Ответы [ 3 ]

15 голосов
/ 18 сентября 2009

Есть несколько способов:

output = `whoami`

#or

output = %x[whoami]

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

output = system "whoami"
6 голосов
/ 18 сентября 2009

Просто используйте обратные кавычки для выполнения оператора:

output = `whoami`

Результат будет в переменной 'output'.

1 голос
/ 12 августа 2010

Я не был уверен, как заставить другие методы завершиться с ошибкой, поэтому я пошел с перенаправлением:

sh "mysql --verbose #{connection_options} < #{sql_file} > #{sql_file_output_file}" do |ok, status|
  ok or fail "mysql file failed [#{sql_file}"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...