Redirecting stderr to stdout
When writing commands in a Unix shell, or bash scripts, I often want to log a specific process to check progress during runtime. If I am running a longer job in a
screen session, I would always rather check a log file than scroll back in the screen session… (possible but annoying). There are a few options, but the most portable option that I always look for (and end up here) is the following:
command > out.log 2>&1
This allows you to send the stdout and stderr from the process into out.log.
Another easy way to log a single long process is by naming your screen log. The following command starts a
screen session logging the whole session in
out.log. If you do not specify a
-Logfile, it will be named
screen -L -Logfile out.log
Maybe now that I have these tricks written down, I won’t have to look them up so often.