bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reading mysql data stream into array


From: DJ Mills
Subject: Re: Reading mysql data stream into array
Date: Fri, 6 May 2011 12:12:54 -0400

On Fri, May 6, 2011 at 12:07 PM, Dirk <dirk.schulz@kinzesberg.de> wrote:

>  Hi folks,
>
> I am going nuts trying to read the output of a mysql select statement into
> an array. I have consulted bashfaq and other sources and tried various
> approaches, but every jump was somewhat short, it seems.
>
> This is what I tried (bash is 3.2.xx, I tried on MacOS X and Debian Lenny):
>
>    while read -r; do messag[i++]=$REPLY; done < <(mysql select statement)
>      # this is from BashFAQ Nr. 5 - is this possible with bash 3.2.x at all?
> this got me complains about unexpected "<" and such
>
>    $(mysql select command) | while read line; do messag+=($line); done
>    # this basically works, but counting up the array index does not
> I also tried
>    ... do messag[i++]=($line)
>                              # -bash: messag[i++]: cannot assign list to
> array member (????)
>    ... do messag[i]=$line && i=$(($i+1))
>    ... do messag[$i]=$line && i=$(($i+1))
>
> It never results in every line of the mysql output becoming an array
> element.
>
> I really tried finding out myself, but I am stuck, so please can someone
> point me to what I do wrong?
>
> Thanks in advance,
>
> Dirk
>
>
'this got me complaints about unexpected "<" and such'

You generally want to give specific errors.  It almost sounds like you may
be using sh, and not bash
Is the first line of your script #!/bin/sh, or #!/bin/bash?

while read -r; do messag+=("$REPLY"); done < <(mysql ...)

should work fine.  As should the first example you gave.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]