-s returns true if the file exists and is of length > zero
-a returns true if file exists
The double quotes around the variables exists just in case the
variables contain a space (ie. a filename like '/home/ben/my docs'). If
the quotes are not used the script is expanded such:
Code:
if [ -s /home/ben/my docs -a root != "" ]; then
and /home/ben/my and docs are expanded by bash as two parameters,
not one. Putting quotes around the variable would expand it to
"/home/ben/my docs".
More good stuff:
http://www.gnu.org/manual/bash/html_...f_6.html#SEC75