📜 Что такое IFS в скриптах на Bash?

как использовать IFS

by itisgood
При выполнении скриптов Bash или просто при программировании на сервере Linux через командную строку гибкость, которую может предоставить Linux, просто поразительна.
IFS или Internal Field Separator,- это простой способ указать системе (точнее, текущему терминальному сеансу), что в качестве разделителя полей следует использовать определенный символ или знак.
Это позволяет в рамках bash-скрипта заставить систему работать с определенным символом в качестве разделителя.
По умолчанию IFS в bash и многих других оболочках – это пробел, табуляция и новая строка.
Но вы можете явно указать их в своем bash-скрипте и изменить в соответствии с вашими потребностями.

Чем может быть полезен IFS?

Довольно просто!

Допустим, вы работаете с файлами, разделенными запятыми (CSV), и хотите использовать скрипт для чтения этого файла, чтобы работать с его данными.

Как вы знаете, каждый “,” отделяет поля или важные данные, содержащиеся в этом файле.

Следовательно, это то, что вам нужно сказать системе.

Давайте рассмотрим очень простой пример: у нас есть файл clients.csv, в котором содержатся имя, фамилия, возраст и страна:

IFS=","
while read -r field1 field2 field3 field4; do
   echo "First Name: $field1"
   echo "Last Name: $field2"
   echo "Age: $field3"
   echo "Country: $field4"
done < clients.csv

Этот скрипт будет читать этот файл, понимая, что “,” – это разделитель полей, и сохранять это в переменных в файле и выводить их с соответствующим именем поля.

Как сделать его постоянным

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

В этом случае вам нужно будет установить значение IFS в файле “.bashrc” или “.bash_profile”.

Заключение

Linux настолько мощная и в то же время гибкая система, что позволяет контролировать такие вещи, как разделение полей и использование общего символа для работы с вашими скриптами.

Используя IFS, вы можете установить этот символ в зависимости от цели, которую вы хотите достичь с помощью вашего скрипта.

Это позволяет создавать сценарии, которые могут делать такие вещи, как выделение различных частей вводимых данных и их обработка, чтобы просто работать с ними, создавать новые массивы и многое другое.

Надеюсь, вам понравилась эта небольшая статья о IFS в оболочке bash. Дайте мне знать, если у вас остались вопросы или предложения.

см. также:

You may also like

Leave a Comment