Всем привет, допустим у меня есть скрипт на bash
cmd1
cmd2
#...
cmdN
Я хочу вывод перенаправлять в лог, но не хочу это явно писать в каждой строчке типа:
cmd1 &> $LOG
cmd2 &> $LOG
#....
Можно как-то сделать что-то вроде freopen() ? Чтобы все последующие команды автоматом перенаправляли свой вывод, куда мне надо? При этом надо периодически показывать echo пользователю, то есть хочется что-то вроде
echo "Doing stuff1"
redirect_output_to_log
do_stuff1
restore_output
echo "stuff1 done"
echo "doing stuff2"
redirect_output_to_log
do_stuff2
#...
Пока что есть идея пройтись sed'ом/perl'ом по скрипту и в каждой строчке, которая не вида «^echo», или «^\w=\w$», добавлять в конец &>$LOG, но это как-то некрасиво.
Возможно в баше есть какие-то глобальные встроенные переменные, которым можно делать set/unset?