Many faces of 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))

Leave a comment

Recent Entries

A walk along the Keizersgracht
Too often one is so consumed by a jungle of intertwined thoughts that the beauty of the nearby surroundings ... »
Popularity is fickle
The popularity of a given next generation technology is very fickle, and its success or failure depends on many ... »
Where was Kiffin really buried?
Hi There seems to be some confusion on the current resting place of Kiffin Rockwell, some say that his ... »
Going to Portugal
Normally the week just before I leave for summer vacation, I spend hours on end desperately searching for some ... »
A human language
These days it is not very often that a new and exciting Perl book comes along. That's why I ... »