读取以空格分隔的输入字段

读取以空格分隔的输入字段

我如何读取 POSIXbash输入,如下所示:

<name>,<tag1> <tag2> <tag3>…

我尝试过, while read line;do done但这需要换行符,我所拥有的只是空格。

(是IFS解决方案?如果是,怎么办? (我不完全理解IFS。))

答案1

使用数组:

echo '<name>,<tag1> <tag2> <tag3>' | while IFS=" ," read -a foo; do echo ${foo[@]}; done

输出:

<name> <tag1> <tag2> <tag3>

man bash

IFS:内部字段分隔符,用于扩展后的字拆分,以及使用 read 内置命令将行拆分为字。

相关内容