====== BASH - Output - Understand the difference between standard output and standard error ======
A sane command writes the output that you request to standard output (stdout) and only writes errors to standard error (stderr).
For example:
dig +short A wiki.sharewiz.net
5.42.134.35
ip=$(dig +short A wiki.sharewiz.net)
echo "{$ip}"
{5.42.134.35}
ls no-such-file
ls: cannot access 'no-such-file': No such file or directory
output=$(ls no-such-file)
ls: cannot access 'no-such-file': No such file or directory
echo "{$output}"
{}
**NOTE:** In this example:
* **dig** wrote output to stdout, which was also captured in the **ip** variable.
* This was all successful.
* **ls** encountered an error, so it did not write anything to stdout.
* It wrote to stderr, which was not captured (because we **2>&1** was not used).
* The error message appeared directly on the terminal instead.
----