Команда перенаправить вывод на консоль и в файл в то же время отлично работает в Bash.Но как мне заставить это работать в оболочке korn (ksh) - PullRequest
0 голосов
/ 31 мая 2019
Команда

для перенаправления вывода на консоль и в файл одновременно отлично работает в bash.Но как мне заставить его работать в оболочке korn (ksh).

Все мои скрипты выполняются на оболочке korn, поэтому я не могу изменить их на bash, чтобы эта конкретная команда работала.

exec>> (tee -a $ LOGFILE) 2> & 1

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Не слишком необоснованный метод - перезапустить оболочку с выводом на tee.То есть в верхней части скрипта сделайте что-то вроде:

#!/bin/sh

test -z "$REXEC" && { REXEC=1 exec "$0" "$@" | tee -a $LOGFILE; exit; }
0 голосов
/ 03 июня 2019

В приведенном ниже коде я использую переменную logfile, строчные буквы лучше.
Вы можете попробовать что-то вроде

touch "${logfile}"
tail -f "${logfile}"&
tailpid=$!
trap 'kill -9 ${tailpid}' EXIT INT TERM
exec 1>"${logfile}" 2>&1
...