コマンドによって返されるスペースで区切られた複数の単語を含む行を分割する必要があります。試してみましたが、read
完全に奇妙に動作します。たとえば、
echo "Hello World!" | read -ra lines; echo "${lines[@]}"
Bashで実行すると空の行が表示されますが、echo "Hello World!" | read -ra lines; do echo "${lines[@]}"; done
結果はなぜですかHello World!
?
実行するとecho "Hello World!" | tee /dev/stdout | read -ra lines; echo "${lines[@]}"
空白行も表示されます。
単純なものでもecho "Hello World!" | read hello; echo "$hello"
動作しません。
答え1
2番目の例にはタイプミスがあります。しなければならないecho "Hello World!" | while read -ra lines; do echo "${lines[@]}"; done