----- Jay Hall <[email protected]> wrote:
> Ladies and Gentlemen,
> 
> I thought I understood how arrays work in bash, but I have been proven  
> wrong.  I am reading lines from a file and placing them in an array.   
> However, when I am finished, the array has a length of 0.
> 
> Following is the code I am using.
> 
> #!/usr/local/bin/bash
> COUNTER=0
> cat ./test_file.txt | while read LINE
> do
>          echo ${LINE}
>          FOO[${COUNTER}]=${LINE}
>          COUNTER=`expr ${COUNTER} + 1`
> done
> 
> echo ${#f...@]}
> echo ${#FOO[*]}
> 
> 
> And, here is the output.
> 
> test_file
> file_size
> 0
> 0
> 
> Thanks in advance for any help you can offer.

The right hand side of the pipe is running in its own subshell so
it has its own copy of FOO.

One fix is
#!/usr/local/bin/bash
COUNTER=0
while read LINE
do
         echo ${LINE}
         FOO[${COUNTER}]=${LINE}
         COUNTER=`expr ${COUNTER} + 1`
done < ./test_file.txt

> 
> 
> Jay
> _______________________________________________
> [email protected] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "[email protected]"

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to