Bash provides I/O redirection. There are 3 standard files: STDIN (standard input) with descriptor 0, STDOUT (standard output) with descriptor 1 and STDERR (standard error) with descriptor 2.
If you want to redirect your messages to STDERR, you can use >&2 symbol. This symbol is abbreviation of 1>&2 symbol that means, that everything in STDOUT will goes to STDERR.
So, if you want to put message "Cannot delete directory" in STDERR, you can do it this way:
echo Cannot delete directory >&2
Even more, you might to create your own function for error messages:
recho() { echo "$*" >&2 ; }
recho "Cannot delete directory" > /dev/null
Output: Cannot delete directory
On the first line, we define recho function (error echo). This function will print all its arguments ($*) to STDERR (>&2).
On the second line, we try to use function. To prove, that output will be written to STDERR, we will redirect STDIN to nowhere (/dev/null). So, if you see some output, it should be in STDERR.
Was this information helpful to you? You have the power to keep it alive.
Each donated € will be spent on running and expanding this page about UNIX Shell.
We prepared for you video course Marian's BASH Video Training: Mastering Unix Shell, if you would like to get much more information.
Thank you. Marian Knezek