Category: Bash

 | Bash | 0 Comments

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))

Recent Assets