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
hello
$ shopt -s nullglob
$ while read a[++i]; do
>     echo "${a[i]}"
> done <<< hello

$



On 30 May 2013 16:49, Davide Brini <dave...@gmx.com> wrote:
> On Thu, 30 May 2013 08:53:48 +0300, Pierre Gaston <pierre.gas...@gmail.com>
> wrote:
>
>> Missing quotes around [ ]  can be nasty eg
>>
>> #!/bin/bash
>> shopt -s nullglob # sounds a good idea!
>> .....
>> .....
>> i=0
>> 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.
>
> --
> D.
>

Reply via email to