Bash

讀取由空格分隔的輸入欄位

  • August 19, 2015

我怎樣才能讀入bash這樣的 POSIX 輸入:

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

我試過 while read line;do done了,但這需要換行符,我只有空格。

(是IFS解決方案嗎?如果是,如何解決?(我不完全了解IFS。))

使用數組:

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

輸出:

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

來自man bash

IFS:內部欄位分隔符,用於擴展後的分詞,並使用 read 內置命令將行拆分為單詞。

引用自:https://unix.stackexchange.com/questions/203954