Dividindo dados retornados por um comando [duplicado]

0

Eu preciso dividir uma única linha contendo várias palavras separadas por espaços retornados por um comando. Eu tentei usar read , mas ele age completamente estranho. Por exemplo:

Por que a execução de echo "Hello World!" | read -ra lines; echo "${lines[@]}" no Bash resulta em uma linha vazia, mas a execução de echo "Hello World!" | read -ra lines; do echo "${lines[@]}"; done resulta em Hello World! ?

Se eu executar echo "Hello World!" | tee /dev/stdout | read -ra lines; echo "${lines[@]}" , isso também resultará em uma linha vazia.

Mesmo o echo "Hello World!" | read hello; echo "$hello" simples não funciona.

    
por yngol 13.06.2018 / 05:17

1 resposta

0

O segundo exemplo tem um erro de digitação. Deve ser echo "Hello World!" | while read -ra lines; do echo "${lines[@]}"; done

    
por 13.06.2018 / 05:20