A vertical bar character (
|) on a command line
pipes the standard output of a process to another process.
How can you pipe the standard error, not the standard output?
You might want to put a long-running cruncher command in the background,
save the output to a file, and mail yourself a copy of the errors.
In the C shell, run the command in a
The standard output of the command is redirected inside the subshell.
All that's left outside the subshell is the
standard error; the
redirects it (along with the empty standard output) to the
yourname&  12345
The Bourne shell gives you a lot more flexibility and lets you do just what you need. The disadvantage is the . Here's how to run your cruncher program, route the stderr through a pipe to the mail program, and leave stdout going to your screen:
(cruncher 3>&1 1>&2 2>&3 3>&-) | mail
To redirect stdout to an output file and send stderr down a pipe, try this:
(cruncher 3>&1 >
2>&3 3>&-) | mail