logerrs | This simple script by Maarten Litmaath runs a command, logs any error messages to a file and also sends them to standard error. Because the standard error usually goes to your screen, this lets you see the errors and log them in a file too. |
---|
The script's first argument is the log filename. Then type the command and any other arguments for it. Here's an example of running cat foo bar and logging errors to a file named errors. The foo file exists; the bar file doesn't:
$cat foo
hello world $logerrs errors cat foo bar
hello world bar: No such file or directory $cat errors
bar: No such file or directory
These two lines of the script do the work:
exec 3>&1 "$@" 2>&1 >&3 | tee -a "$ERRLOG" >&2
If the >&
stuff is a mystery and you're interested in the
Bourne shell's handling of file descriptors, see articles
45.20
and
45.21.
-
,