2009-09-17 2 views
17

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

ш «Whoami»

Но Sh только кажется, возвращает истину, а не строка, содержащая вывод WHOAMI команды. Кто-нибудь знает о решении?

ответ

5

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

output = `whoami` 

Результат будет в «выход» переменной.

14

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

output = `whoami` 

#or 

output = %x[whoami] 

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

output = system "whoami" 
+0

Спасибо за упоминание «система «whoami» - я искал способ подавить эхо-обратную команду, которую «sh» diff ab «» производит, а «system» diff ab «» делает трюк. – bjnord

1

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

sh "mysql --verbose #{connection_options} < #{sql_file} > #{sql_file_output_file}" do |ok, status| 
    ok or fail "mysql file failed [#{sql_file}" 
end 
Смежные вопросы