solucao:
primeiro pega-se a entrada
VETOR=(
$( cat - )
)
agora usa-se um for para tratar a entrada
....
;-)
2009/10/22 Ivan lopes <[email protected]>
> Amigos pq do erro??? Seria devido ao final da stream de leitura????
> A varia'vel VETOR aparece vazia fora do loop e nao imprime nada ....
>
> OBS: olhem o uso do 'cat -' seguido de pipe
>
>
> =*= Descricao =*=
>
> Problema:
> Variavel aparece com valor nulo.
>
> Minha opinião:
> Eu acho q isso ocorre devido ao final do pipe ...
>
> uso:
> $ ls *.cpp | ./ex.sh
>
> saida desejada:
> $ ls example_01.cpp example_02.cpp example_03.cpp | ./ex.sh
> VETOR = example_01.cpp
> VETOR = example_01.cpp example_02.cpp
> VETOR = example_01.cpp example_02.cpp example_03.cpp
> VETOR = example_01.cpp example_02.cpp example_03.cpp
>
> saida obtida:
> $ ls example_01.cpp example_02.cpp example_03.cpp | ./ex.sh
> VETOR = example_01.cpp
> VETOR = example_01.cpp example_02.cpp
> VETOR = example_01.cpp example_02.cpp example_03.cpp
> VETOR =
>
>
> $ ls *.cpp
> example_01.cpp example_02.cpp example_03.cpp
>
> $ cat ex.sh
> #!/bin/bash
>
> declare -a VETOR
> i=0
> cat - | while read LINHA
> do
> VETOR[i++]=$LINHA
> echo VETOR = ${VETOR[*]}
> done
> # fora do loop!
> echo VETOR = ${VETOR[*]}
>
>
>
[As partes desta mensagem que não continham texto foram removidas]