Re: [Nolug] Lists in bash

From: Ron Johnson <ron.l.johnson_at_cox.net>
Date: 12 Feb 2003 18:18:14 -0600
Message-Id: <1045095493.3527.22.camel@haggis>

Ok, progress is being made!

  $ a=`ctr=0;ctr1=10;while [ "$ctr" != "$ctr1" ]; \
       do echo $ctr;let ctr+=1;done`
  $ echo $a
  0 1 2 3 4 5 6 7 8 9

Unfortunately, something still doesn't work:

  $ for i in $a; do echo $a; done
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9
  0 1 2 3 4 5 6 7 8 9

  $ for i in a; do echo $a; done
  0 1 2 3 4 5 6 7 8 9

  $ a=(`ctr=0;ctr1=10;while [ "$ctr" != "$ctr1" ]; \
        do echo $ctr;let ctr+=1;done`)
  +0-
  +0-
  +0-
  +0-
  +0-
  +0-
  +0-
  +0-
  +0-
  +0-

So how do I get to each element in the list?

Would it be easier to do in perl?

On Wed, 2003-02-12 at 16:51, John Kosta wrote:
> Script:
>
> #!/bin/bash
>
> counter=0
> countupto=11
> while [ "$counter" != "$countupto" ]
> do
> echo $counter
> let counter+=1
> done
>
> Result:
>
> john@localhost:~$ bash test
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
>
> You could set countupto however you want.
>
> --John
>
>
> ----- Original Message -----
> From: "Ron Johnson" <ron.l.johnson@cox.net>
> To: "NOLUG ML" <nolug@joeykelly.net>
> Sent: Wednesday, February 12, 2003 3:54 PM
> Subject: Re: [Nolug] Lists in bash
>
>
> > On Wed, 2003-02-12 at 13:05, Brett D. Estrade wrote:
> > > #!/usr/local/bin/bash
> > >
> > > # define list - note parans
> > > list=(1 2 3 4 5 6 7 8 9 10 11 12 13)
> > >
> > > # cycle through list - note array ref and "@"
> > > # in the index spot
> > >
> > > for i in "${list[@]}"; do
> > > echo $i
> > > done
> > >
> > > #----end of script
> >
> > Thanks. However, what if I had an arbitrarily large number that I
> > wanted in the list.
> >
> > Are you saying that there's no way to do nummeric sequences?
> >
> > > --- Ron Johnson <ron.l.johnson@cox.net> wrote:
> > > > Hi,
> > > >
> > > > This, I know how to do:
> > > > $ for i in 1 2 3 4 5 ; do echo $i ; done
> > > > 1
> > > > 2
> > > > 3
> > > > 4
> > > > 5
> > > >
> > > > That's great, and reminds me of python. Is there a syntax for making
> > > > arbitrarily long numerical lists, without having to enumerate each
> > > > number?
> > > >
> > > > For example, these syntax attempts failed:
> > > > $ for i in 1-5 ; do echo $i ; done
> > > > 1-5
> > > > $ for i in 1..5 ; do echo $i ; done
> > > > 1..5
> > > > $ for i in [1-5] ; do echo $i ; done
> > > > [1-5]
> > > >

-- 
+------------------------------------------------------------+
| Ron Johnson, Jr.     Home: ron.l.johnson@cox.net           |
| Jefferson, LA  USA   http://members.cox.net/ ron.l.johnson |
|                                                            |
| "For me and windows it became a matter of easy to start    |
|  with, and becoming increasingly difficult to be produc-   |
|  tive as time went on, and if something went wrong very    |
|  difficult to fix, compared to linux's large over head     |
|  setting up and learning the system with ease of use and   |
|  the increase in productivity becoming larger the longer I |
|  use the system."                                          | 
|   Rohan Nicholls , The Netherlands                         |
+------------------------------------------------------------+
___________________
Nolug mailing list
nolug@nolug.org
Received on 02/12/03

This archive was generated by hypermail 2.2.0 : 12/19/08 EST