Чтение полей ввода, разделенных пробелами

Как я могу читать входные данные POSIX bash следующим образом:

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

Я пробовал while read line;do done но это требует новых строк, все, что у меня есть, это пробелы.

(Является ли решение IFS ? Если да, то как? (Я не совсем понимаю IFS.))

  • Сценарий Bash для scp-интерпретации тильды (~) слишком рано
  • Можно ли перечислить только определенные подкаталоги?
  • Как удалить повторяющиеся строки из файла?
  • Как я могу распространять свой ключ SSH pub в список серверов без необходимости вводить мой пароль снова и снова?
  • Избегайте расширения обратной косой черты с эхом в тире
  • Как использовать замещение процесса внутри case-case без получения синтаксических ошибок?
  • sudo kill: операция не разрешена через SSH
  • Выполнить такую ​​же операцию для нескольких пар файлов с похожими именами
  • One Solution collect form web for “Чтение полей ввода, разделенных пробелами”

    Используйте массив:

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

    Вывод:

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

    От man bash :

    IFS: внутренний разделитель полей, который используется для разбиения слов после расширения и разделения строк на слова с помощью встроенной команды чтения.

    Linux и Unix - лучшая ОС в мире.