Может ли stdout, stderr всегда работать с обычным файлом? - PullRequest
0 голосов
/ 01 августа 2010

Могу ли я настроить bash в Linux для записи копии всех stdout и stderr в обычный файл без указания перенаправления для каждой команды?

Спасибо, Кент

Ответы [ 3 ]

4 голосов
/ 01 августа 2010

Вы можете использовать script для создания журнала сеанса вашей оболочки

1 голос
/ 01 августа 2010

Команда exec, если ей не дано выполнить команду, будет применять свои перенаправления к текущей оболочке.В моем тестировании, однако, это, кажется, не работает так хорошо для труб.Я бы предложил использовать подоболочку, которую вы можете перенаправить обычным образом.

(
   echo hello
   echo hello err >&2
) 2>&1 | tee logfile.txt

Если вам нужна только расшифровка, а не сплошной тройник, exec >& logfile может работать.

ТакжеТрадиционный трюк заключается в использовании инструмента удаленного входа (ssh или telnet) для создания журнала интерактивного сеанса. экран также поддерживает ведение журнала.

1 голос
/ 01 августа 2010

Если вы пишете скрипт, я бы порекомендовал написать функцию оболочки и перенаправить ее вывод.Вам не нужно будет перенаправлять каждую команду этой функции.В любом случае я почти не вижу смысла в перенаправлениях в интерактивной оболочке.

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