Why would any system administrator worth his/her weight in salt prefer to use something like this:
if [ "$X" -eq "$Y" ]; then echo 'X equals Y'; fi
when you could just as easily use the following simpler and more logical form?
if ((X==Y)); then echo 'X equals Y'; fi
Forget about always using those quotes, drop the dollar signs, and stop making sure that there is white space between the right and left brackets. Even better would be:
((X==Y)) && echo 'X equals Y'
For those lazy typists among us (like me) who like to impress others, and disdain the risks of confusing the bash newbies with a slightly more cryptic yet elegant style.
So why retain the single quotes in the last statement, you may ask? Well, I've learned that by making it a habit always to enclose echo stuff between single or double quotes will save you lots of headaches due to trouble-shooting the obvious.
By the way, the difference between "double" and 'single' quotes is that variables between double quotes will be expanded while those between single quotes will not.
$ X=10 $ echo '$X equals 10' $X equals 10 $ echo "$X equals 10" 10 equals 10
((So be "very very" careful, and 'do things' right))