bash increment in a given way

Sam Sharpe lists.redhat at samsharpe.net
Sat Dec 11 17:05:34 UTC 2010


On 11 December 2010 14:34, S Mathias <smathias1972 at yahoo.com> wrote:

> It's ok, that i can use this, when i want an incrementing sequence, in a
> given way:
>
> # {START..END..INCREMENT}
> $ for i in {0..10..2}; do echo "Welcome $i times"; done
> Welcome 0 times
> Welcome 2 times
> Welcome 4 times
> Welcome 6 times
> Welcome 8 times
> Welcome 10 times
> $
>
> but what's the "magic" for this? :
>
> $ MAGIC; do echo "Welcome $i times"; done
> Welcome 0 times
> Welcome 1 times
> Welcome 4 times
> Welcome 5 times
> Welcome 8 times
> Welcome 9 times
> $
>

All you need to do is work out the function behind the sequence. To generate
this particular sequence, you need 2 loops, and outer one counting from 0..2
and an inner one counting between 0..1:

for n in {0..2};
do
   for m in {0..1};
   do
      echo "Welcome $(((n * 4) + m)) times";
   done;
done;

or, in one line:

for n in {0..2}; do for m in {0..1}; do echo "Welcome $(((n * 4) + m))
times"; done; done;

-- 
Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fedoraproject.org/pipermail/users/attachments/20101211/6d92bb1f/attachment.html 


More information about the users mailing list