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]

Responder a