Как передать вывод команды в файл в Linux - PullRequest
16 голосов
/ 15 мая 2010

Я запускаю задачу в CLI, которая запрашивает ввод да / нет.

После выбора варианта на экране прокручивается большое количество информации, включая несколько ошибок. Я хочу передать этот вывод в файл, чтобы я мог видеть ошибки. Простое «>» не работает, так как команда ожидает ввода с клавиатуры.

Я работаю на Ubuntu 9.1.

Ответы [ 5 ]

40 голосов
/ 15 мая 2010
command &> output.txt

Вы можете использовать &> для перенаправления как stdout, так и stderr в файл. Это сокращение для command > output.txt 2>&1, где 2>&1 означает «отправить stderr в то же место, что и stdout» (stdout - дескриптор файла 1, stderr - 2).

Для интерактивных команд я обычно не беспокоюсь о сохранении в файл, если я могу использовать less и сразу же прочитать результаты:

command 2>&1 | less
4 голосов
/ 15 мая 2010
echo yes | command > output.txt

В зависимости от того, как команда читает входные данные (некоторые программы сбрасывают то, что было на stdin, прежде чем отображает приглашение, но большинство этого не делают), это должно работать в любой нормальной среде CLI.

1 голос
/ 27 февраля 2013

вы можете использовать опцию 2> для отправки ошибок в файл.

пример:

команда 2> error.txt

(используйте опцию 2>) --- посмотрите, будет ли ошибка при выполнении команды, она отправит ее в файл error.txt.

1 голос
/ 15 мая 2010

Если программа была написана здравомыслящим человеком, то, вероятно, вам нужен stderr, а не stdout Вы бы достигли этого, используя что-то вроде

foo 2> errors.txt

1 голос
/ 15 мая 2010

Используйте 2> вместо >.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...