У меня есть скрипт (фрагмент), для которого я регистрирую вывод и стандартную ошибку:
#!/bin/sh
#...
{
date "+%Y-%m-%d %T"
cd $workdir
ls -ltr validfile badfile #example command that provides stdout, stderr
} | tee -a $logfile
Если я сделаю выше, я получу стандарт в лог-файл. Чтобы получить стандартную ошибку там, я мог бы сделать это:
#!/bin/sh
#...
{
date "+%Y-%m-%d %T"
cd $workdir
ls -ltr validfile badfile
} 2>&1 | tee -a $logfile
Но эта версия в скрипте при вызове из командной строки не позволит мне разобрать ошибки:
$ ./script.sh 2>/dev/null
Просто покажет все стандартные и стандартные ошибки. Что если на этот раз я хочу просто поглотить ошибки?
Можете ли вы показать мне, как передать стандартную ошибку в журнал, но оставить ее при стандартной ошибке, когда она вызывается через командную строку или другой скрипт?
AIX 7.1, ksh (без bash)