Насколько легко скрыть результаты от системных команд в ruby? Например, некоторые мои скрипты запускают
system "curl ..."
и я бы не хотел видеть результаты загрузки.
Спасибо!
Ответ 1
Вы можете использовать более сложную popen3 для управления STDIN, STDOUT и STDERR отдельно, если хотите:
Open3.popen3("curl...") do |stdin, stdout, stderr, thread|
# ...
end
Если вы хотите отключить определенные потоки, вы можете их игнорировать или если важно перенаправить или интерпретировать этот вывод, у вас все еще есть доступный.
Ответ 2
Простейшие способы, кроме popen:
Используйте% x вместо системы. Он автоматически подключится к
rval = %x{curl ...} #rval will contain the output instead of function return value
Вручную подключиться к /dev/null. Работа в UNIX как система, а не Windows
system "curl ... > /dev/null"
Ответ 3
Простейшим является перенаправление stdout:)
system "curl ... 1>/dev/null"
# same as
`curl ... 1>/dev/null`