Re: Redirection of STDERR

From: Stephen Samuel
Date: Wed Mar 10 2004 - 11:41:20 EST


Yeah, you're right. I was tired when I wrote it,

however, the exec command still isn't quite
complete. Normally, you'd want a command to be
exec'ing.

In theory, the exec command by itself should (I think) just
redirect for the rest of your commands... However, it would
appear that there's a bug in bash for that syntax.
(i.e. If I type it in on the command line, It doesn't work for me, either).

In this case, I think you're going to be better off to just start
your processes with the output going direct logger...

my (more successful) way of doing this is:

{
command 1
command2
command3
} | logger -t $0[$$]

(needs a semicolon before the '}' if it's a one-liner.

It's also more portable (compatible with old bourne shells)
I prefer to save things like the named pipe syntax for the really
ornery situations where bourne-compatible syntax jusr doesn't
do the job.

Andreas Schwab wrote:
> Stephen Samuel <samuel@xxxxxxxxxxx> writes:
>>Christoph Pleger wrote:
>>>Hello,
>>>In my initialization scripts for hotplug (written for bash) the
>>>following command is used to redirect output which normally goes to
>>>stderr to the system logger:
>>>"exec 2> >(logger -t $0[$$])"
>>
>>I don't remember this syntax as legal.
>
> That's the process substitution feature of bash, quite handy when you want
> to get an fd connected to a pipe.


--
Stephen Samuel +1(604)876-0426 samuel@xxxxxxxxxxx
http://www.bcgreen.com/~samuel/
Powerful committed communication. Transformation touching
the jewel within each person and bringing it to light.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/