FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux General Discussion

 
 
LinkBack Thread Tools
 
Old 06-30-2010, 10:22 PM
Victor Lowther
 
Default for conditional checking when running in bash.

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
 
Old 06-30-2010, 10:29 PM
Thomas Bächler
 
Default for conditional checking when running in bash.

Am 01.07.2010 00:22, schrieb Victor Lowther:
> 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.
>

Sounds nice. This will probably mean that I will apply all the patches
that do this transition - however, it might probably be nicer to squash
all of those into one commit.
 
Old 06-30-2010, 10:31 PM
Victor Lowther
 
Default for conditional checking when running in bash.

On Thu, 2010-07-01 at 00:24 +0200, bardo wrote:
> 2010/7/1 Daenyth Blank <daenyth+arch@gmail.com>:
> > On Wed, Jun 30, 2010 at 17:56, Thomas Bächler <thomas@archlinux.org> 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?
> >>
> >>> -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.
> >>
> >>
> >
> > Quoting is not needed in [[ and it makes the code uglier.
> >
>
> Ditto. May I also suggest a link[1] to those that do not know all the
> beauties of double square brackets? By the way, the whole BashFAQ in
> there is really interesting, it has lots of advanced tips 'n tricks.
>
> Corrado
>
>
> [1] http://mywiki.wooledge.org/BashFAQ/031

greycat and friends are awesome, it is true. I learned alot reading
gregs wiki and hanging out on #bash.

--
Victor Lowther
LPIC2 UCP RHCE
 

Thread Tools




All times are GMT. The time now is 08:22 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org