Програмування BASH

Як використовувати $ IFS в Bash?

Як використовувати $ IFS в Bash?
Під час сценаріїв ми повинні розбивати рядкові дані з різних причин. Розділити - це інтегрована функція багатьох мов комп’ютера, яка розділяє кожен рядок даних на різні частини. Однак у bash відсутня вбудована функція для розділення рядка. Для розбиття будь-якого рядкового значення використовується багато одиничних та складених роздільників. Змінна IFS (Внутрішній роздільник полів) використовується для вказівки конкретного роздільника для поділу рядків. У цьому посібнику ви дізнаєтеся, як використовувати різні методи, щоб проілюструвати процес розбиття рядкового значення в bash за допомогою $ IFS.

Передумови

Переконайтеся, що у вас встановлена ​​та налаштована система на базі Linux. Ми будемо працювати над Ubuntu 20.04 Система Linux. Увійдіть у свій обліковий запис користувача Ubuntu, щоб розпочати роботу над IFS. Буде краще, якщо ви увійдете зі свого кореневого облікового запису користувача. Після входу в систему запустіть термінал командного рядка у вашій системі з області Діяльність.

Приклад 01: IFS розбиває рядок, використовуючи пробіл як значення

Для нашого першого прикладу ми зрозуміємо концепцію розділення рядка в bash, використовуючи пробіл як значення роздільника за допомогою змінної IFS. По-перше, ми повинні створити файл bash у нашій системі. Ми можемо створювати нові файли в нашій системі Linux за допомогою команди 'touch'. Як показано нижче, ми створили файл bash 'file1.sh 'за допомогою інструкції' touch ':

$ сенсорний файл1.ш

Відкрийте домашній каталог вашої системи Linux, використовуючи піктограму папки, що відображається в лівому куті вашого Ubuntu 20.04 робочий стіл. Ви знайдете ваш щойно створений файл bash “file1.ш ”у ньому. Відкрийте файл “файл1.sh ”і введіть наведений нижче сценарій. По-перше, ми визначили рядок із назвою „str” із деяким значенням рядка. Потім ми визначаємо змінну IFS як змінну, що має простір як значення. Після цього ми використали оператор read для збереження та зчитування розділених даних у масив “strarr”, використовуючи прапор “-a”. Оператор "echo" використовується для друку рядка рядка разом із підрахунком загальної кількості слів масиву з використанням "$ # strarr [*]". Цикл “for” використовується для друку значень масиву в розділеному вигляді за допомогою змінної “var”. Зворотна коса риса «\ n» була використана в рядку друку разом зі змінною «var», щоб дати розділений розрив одного рядка після кожного значення масиву. Збережіть сценарій за допомогою клавіші “Ctrl + S” і закрийте файл, щоб продовжити далі.

Поверніться до терміналу. Тепер ми перевіримо результати вищезазначеного коду. Для цього ми будемо використовувати команду 'bash' разом з ім'ям файлу 'file1.sh ”для його виконання, як показано нижче. По-перше, він відображав рядок, згаданий у операторі “echo”, разом із кількістю слів масиву. Після цього він відображав усі значення масиву за допомогою циклу “for”, розділеного IFS.

$ bash файл1.ш

Приклад 02: IFS розбиває рядок, використовуючи символ як значення

У вищезазначеному прикладі ви бачили, як розділити рядкові змінні на частини, використовуючи пробіл як роздільник IFS. Тепер ми будемо використовувати символ для розділення рядка за допомогою роздільника IFS. Відкрийте свій командний термінал і створіть новий файл bash “file2.sh ”у вашому домашньому каталозі системи Linux за допомогою команди„ touch ”наступним чином:

$ сенсорний файл2.ш

Відкрийте домашній каталог вашої системи Linux. У ньому ви знайдете свій щойно створений файл. Відкрийте ваш нещодавно створений файл і напишіть поданий нижче баш-код. У рядку 3 ми ініціювали оператор “echo” для друку рядка. Наступний рядок читає введені користувачем дані в терміналі за допомогою ключового слова “read”. Далі ми визначили роздільник “IFS” і встановили кому “,” як значення символу. Для читання та збереження значень, розділених комами, рядка, який користувач вводить у масив „strarr”, було вказано інший оператор „read”. Нарешті, ми ініціювали три оператори відлуння для друку розділених комами значень розділення у вигляді змінних, як показано на зображенні. Збережіть і закрийте цей файл.

Тепер ми повинні виконати цей збережений файл. Для цього виконайте наведену нижче команду bash, а потім ім'я файлу в терміналі. Вам потрібно додати деяке значення рядка, яке повинно містити кому “,” в межах значень і натиснути кнопку Enter. Тепер ваші дані збережено в масиві “strarr”. Останні три рядки показують результати операторів “echo”. Як бачите, кожен текст до і після коми використовувався як окреме значення.

$ bash файл2.ш

Приклад 03: Спільний рядок IFS

Ми зробили обидва попередні приклади у файлі bash. Тепер ми отримаємо ілюстрацію використання “IFS” без створення файлу bash. Відкрийте свою командну оболонку, щоб зробити це. Спочатку нам потрібно створити рядок “var” із значенням рядка. Цей рядок містить коми після кожного слова.

$ var = ”Привіт, мені 25 років, мені вік."

Далі ініціалізуйте змінну 'IFS' символом-комою як значення роздільника.

$ IFS =,

Після цього ми використали цикл “for” для пошуку кожного слова зі змінної “var”, відокремленої комою IFS-роздільника, та надрукували його за допомогою оператора “echo”.

$ за i в $ var
> зробити
> ехо [$ i]
> Готово

Ви отримаєте результат нижче. Він покаже кожне слово рядкової змінної “var” у новому рядку через розділювальну кому “,”, яка використовується як розділений символ.

Висновок:

У цьому посібнику ви вивчили різні методи розділення вхідних значень у bash, наприклад.g., з космосом або з персонажем. Ми сподіваємось, що ілюстрації, згадані в цьому посібнику, допоможуть вам розбити кожен рядок за допомогою роздільника IFS.

How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...