[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-bash] getting weird output out of 'echo' w/args

From: John Kearney
Subject: Re: [Help-bash] getting weird output out of 'echo' w/args
Date: Thu, 30 May 2013 12:25:13 +0200

And note, if you do try using globbing, for constructs like [a-z] to work as you probably expect, you need to set
otherwise [a-z] can end up being something like
[aäáàâbc...  z]
 which is normally not what was intended.

On Thu, May 30, 2013 at 11:15 AM, Roman Rakus <address@hidden> wrote:
Changing the list to help-bash, I think this belongs here.

This is common misconception about filename expansion (globbing). Since globbing is done nearly always (*) people know only about "star" character. The fact is that "star", "question mark" and "opening bracket" (*, ?, [) all have special meaning for globbing. See

Many times I saw using tr like this:
somecommand | tr -s [a-z] ''
somecommand | tr -s [:space:] ' '

Please note that argument for tr undergo globbing (by bash), because it is not quoted.


* It's not always, but it is good practise to double-quote variable expansions.

On 05/30/2013 10:56 AM, Chris Down wrote:
Pierre is referring to the fact that [i++] is evaluated as a glob by
the shell, the reason it doesn't work is because $i is postincremented
instead of preincremented. You can see what he means here:

$ shopt -u nullglob
$ i=0
$ while read a[++i]; do
     echo "${a[i]}"
done <<< hello
$ shopt -s nullglob
$ while read a[++i]; do
     echo "${a[i]}"
done <<< hello


On 30 May 2013 16:49, Davide Brini <address@hidden> wrote:
On Thu, 30 May 2013 08:53:48 +0300, Pierre Gaston <address@hidden>

Missing quotes around [ ]  can be nasty eg

shopt -s nullglob # sounds a good idea!
while read a[i++]; do
   echo "${a[i]}" #  why oh why nothing is printed!
done <<< "hello"

It seems to me this has nothing to do with missing quotes around [ ], or I
don't get what you mean.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]