On Thu, 30 May 2013 16:56:36 +0800, Chris Down <[email protected]> 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
> hello
> $ shopt -s nullglob
> $ while read a[++i]; do
> > echo "${a[i]}"
> > done <<< hello
>
> $
But he was doing postincrement, so it wouldn't have worked anyway, since
the code was assigning to a[0] and printing a[1].
PS: Better put a
a=()
before each run.
--
D.