Я выполняю задачу на CLI, который предлагает мне да/нет вход.
После выбора выбора большая сумма информации прокручивает на экране - включая несколько ошибок. Я хочу передать этот вывод по каналу в файл, таким образом, я вижу ошибки. Простое'>' не работает, так как команда ожидает ввод с клавиатуры.
Я работаю на Ubuntu 9.1.
Если программа была написана здравомыслящим человеком, вам, вероятно, понадобится stderr, а не stdout. Вы можете добиться этого, используя что-то вроде
foo 2> errors.txt
echo yes | command > output.txt
В зависимости от того, как команда считывает ввод (некоторые программы сбрасывают все, что было на стандартном вводе, прежде чем отобразить приглашение, но большинство этого не делает), это должно работать на любой вменяемой CLI-среде.
command &> output.txt
Вы можете использовать &>
для перенаправления как stdout, так и stderr в файл. Это сокращение для command > output.txt 2>&1
, где 2>&1
означает "отправить stderr туда же, куда и stdout" (stdout - дескриптор файла 1, stderr - 2).
Для интерактивных команд я обычно не беспокоюсь о сохранении в файл, если я могу использовать less
и сразу прочитать результаты:
command 2>&1 | less