Подтвердить что ты не робот

Как я могу получить вывод моей команды при использовании rake sh?

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

sh "whoami"

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

4b9b3361

Ответ 1

Существует несколько способов:

output = `whoami`

#or

output = %x[whoami]

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

output = system "whoami"

Ответ 2

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

output = `whoami`

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

Ответ 3

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

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