Дублировать stderr в unix, ksh конкретно

63
5

Я пишу скрипты ksh.
Поскольку я не могу контролировать планировщик заданий или обращаться к его журналам, я регистрирую:


exec 2>>logfile  1>&2 

в начале файла и с помощью журнала:


echo "good job"

Чтобы быстро проверить лог файлы для ошибок, как я могу дублировать stderr в logfile и файл ошибки?
Я представляю что-то с новыми файловыми дескрипторами или тройником или tty?


Спасибо.

спросил(а) 2021-01-25T19:54:41+03:00 5 месяцев назад
1
Решение
63

Выполняя:


echo "good job" | tee errorlog

Вы выполните эхо-вывод script по умолчанию (файл журнала, я полагаю), и сообщение будет также дублировано на "errorlog".


Спасибо

ответил(а) 2021-01-25T19:54:41+03:00 5 месяцев назад
45

Каждый раз, когда вы пытаетесь повторно использовать стандартные дескрипторы файлов, например:


<cmd> 1>err 2>>err 1>out

Переписывает определение первого определения. То есть 1 теперь указывает только на out и 2 на err. Лучше всего было бы использовать два отдельных файла (например, err и out), а также временную привязку выходов и их сортировку для получения комбинированного выхода.

ответил(а) 2021-01-25T19:54:41+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема