O segundo exemplo tem um erro de digitação. Deve ser echo "Hello World!" | while read -ra lines; do echo "${lines[@]}"; done
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.
O segundo exemplo tem um erro de digitação. Deve ser echo "Hello World!" | while read -ra lines; do echo "${lines[@]}"; done
Tags bash shell-script