分割命令返回的数据

分割命令返回的数据

我需要拆分包含由命令返回的空格分隔的多个单词的单行。我尝试使用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

相关内容