我需要拆分包含由命令返回的空格分隔的多个单词的单行。我尝试使用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
第二个例子有一个错字。它应该是echo "Hello World!" | while read -ra lines; do echo "${lines[@]}"; done