[arch-general] [PATCH 04/48] Use [[ ]] instead of [ ] for conditional checking when running in bash.

Victor Lowther victor.lowther at gmail.com
Wed Jun 30 18:22:28 EDT 2010


On Wed, 2010-06-30 at 23:56 +0200, Thomas Bächler wrote:
> Am 30.06.2010 23:47, schrieb Victor Lowther:
> > It is worth 10 - 30% speedup whenever you want to compare something.
> 
> Where do you get this from? I always used [ ], and I found it
> sufficient. Why is [[ ]] faster?

[[ ]] is faster because it is bash syntax, not a builtin command like
[ is. In most programs, both are fast enough, but you an see the
difference if you run otherwise identical tests in a loop one million
times.

> 
> > -if [ "$USECOLOR" = "YES" -o "$USECOLOR" = "yes" ]; then
> > +if [[ $USECOLOR = YES || $USECOLOR = yes ]]; then
> 
> Why do you get rid of the quoting here? Quoting is nice.

Because [[ ]] is bash syntax instead if a builtin comand, it relaxes the
usual expansion rules -- inside of [[ ]], word splitting and pathname
expansion are not performed, so you only have to quote strings if they
need to be single-quoted.
http://wiki.bash-hackers.org/syntax/ccmd/conditional_expression has more
info.

-- 
Victor Lowther
LPIC2 UCP RHCE 


More information about the arch-general mailing list