Suppressing Command Output
Sometimes, you may not want to display any output from your script. This often occurs if you're running a script as a background process (see Chapter 16). If any error messages occur from the script while it's running in the background, the shell e-mails them to the owner of the process. This can get tedious, especially if you run scripts that generate minor nuisance errors.
To solve that problem, you can redirect STDERR
to a special file called the null file. The null file is pretty much what it says it is — a file that contains nothing. Any data that the shell outputs to the null file is not saved, thus the data are lost.
The standard location for the null file on Linux systems is /dev/null
. Any data you redirect to that location is thrown away and doesn't appear:
$ ls -al > /dev/null
$ cat /dev/null
$
This is a common way to suppress any error messages without actually saving them:
$ ls -al badfile test16 2> /dev/null
-rwxr...