Re: variable in loop
On Sun, Jan 02, 2011 at 02:27:19PM -0800, S Mathias wrote:
> $ ASDF=hello; a=0; a=$(( 70 - $(echo $ASDF | awk '{print length}') )); echo "$a $ASDF"$(for i in {1..$a}; do printf "."; done)
> 65 hello.
> $
>
>
> Why doesn't it print:
> 65 hello.................................................................
>
>
>
> What am i missing?
because
a=65
for i in {1..$a}
do
echo $i
done
produces
1..65
because of the order of evoluation - {1..$a} is evaluated BEFORE $a is
evaluated...
A more portable way would be using the "seq" command:
a=65
for i in `seq 1 $a`
do
echo $i
done
hope this helps
--
Karl E. Jorgensen
IT Operations Manager
Reply to: