Well, after posting this
On Mon, Jan 18, 2016 at 10:09 AM, Joel Rees <[email protected]> wrote:
> Trying to put some scripts together so I can set an update going one
> night, check it in the morning, reboot, and finish the update while
> I'm at work.
>
> So I want to do something like
>
> cd /usr/src && cvs -d$CVSROOT up -Pd | tee /var/log/build/cvssrc.log
> cd /usr/xenocara && cvs -d$CVSROOT up -Pd | tee
> /var/log/build/cvsxenocara.log
> cd /usr/ports && cvs -d$CVSROOT up -Pd | tee /var/log/build/cvsports.log
> cd /usr/src/sys/arch/`machine`/conf && config GENERIC.MP && \
> cd ../compile/GENERIC.MP && make clean && make && \
> make install | tee /var/log/build/buildsys.log 2>&1
> ...
>
> except the 2>&1 is, I think the book says, too late to collect both
> output streams into buildsys.log .
>
> I found
>
> exec > >(tee ${LOGFILE}) 2>&1
>
> suggested on stackexchange (with claims that it works in ksh), but a
> simple test with
>
> ls /nonexisting > >(tee mylog) 2>&1
>
> fails with
>
> ksh: syntax error: `> ' unexpected
>
> Any suggestions appreciated. Cluebats, too.
I checked over the answer on stackexchange, played around with an
example of juggling file descriptors, and found this seems to work:
{ ls ${DIR} ; } 2>&1 | tee mylog
catching the output whether DIR exists or not. So I'm going to try
{ rm -rf /usr/obj/* && cd /usr/src && make obj && \
cd /usr/sr/etc && env DESTDIR=/ make distrib-dirs && \
cd /usr/src && make build ; } 2>&1 | tee /var/log/build/buildsys.log
in a script by itself now.
Sorry for talking to myself on list
--
Joel Rees
Be careful when you look at conspiracy.
Arm yourself with knowledge of yourself, as well:
http://reiisi.blogspot.jp/2011/10/conspiracy-theories.html