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

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

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

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

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

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: внутренний разделитель полей, который используется для разбиения слов после расширения и разделения строк на слова с помощью встроенной команды чтения.

  • Печатать аргументы оболочки в обратном порядке
  • Как я могу получить bash, чтобы выйти с ошибкой backtick, аналогично отказу?
  • Как вывести выход из кошки
  • Аргу слишком длинная ошибка при использовании find
  • Bash: интерактивное дистанционное приглашение
  • Перепишите аргументы перед передачей их команде
  • Получить массив имен снимков LXD
  • Мой файл backup_system.sh не запускался под crontab
  • подключиться к удаленному серверу через ssh
  • Построение URL-адресов со списком слов и загрузка из URL-адресов с помощью командной строки
  • Проверьте, имеют ли файлы в определенном каталоге надлежащее расширение?
  • Linux и Unix - лучшая ОС в мире.