On Mon, Jan 18, 2016 at 10:38 AM, Delan Azabani <de...@azabani.com> wrote:
> Put the commands that are to be logged in a grouping command, and
> then apply 2>&1 to that grouping command:
>
> { cd ../compile/GENERIC.MP && \
>   make clean && make && make install; } \
>   2>&1 | tee /var/log/build/buildsys.log
>
> Note that grouping commands that use braces (i.e. those that execute
> their commands in the current environment) require a semicolon before
> they are closed, but those with parentheses do not.

This may help me remember grouping syntax for real.

> If you want stdout and stderr to be logged to separate files, or
> you otherwise want to keep stdout and stderr separate, then a more
> complex dance is needed:
>
> { { cd ../compile/GENERIC.MP && \
>   make clean && make && make install; } \
>   2>&3 | tee /var/log/build/buildsys.out.log; } \
>   3>&1 | tee /var/log/build/buildsys.err.log 1>&2

Thanks, Delan (and Nigel, off list, for the parentheses example).

-- 
Joel Rees

Reply via email to