Регулярні вирази Bash: керівництво по створенню, застосування, приклади

Особливості синтаксису оболонки

Bash є надмножеством команд оболонки Bourne і використовує розширення брекетів, завершення командного рядка, базову налагодження і обробку винятків із застосуванням пастки серед інших функцій. Виконує переважну більшість сценаріїв оболонки Bourne без змін, за винятком сценаріїв, які по-різному інтерпретуються або намагаються запустити системну команду. Регулярні вирази Bash grep, а також інструменти GNU використовують стиснене спосіб сканування помилок і встановлюють статус виходу, що дозволяє потоків переходити до традиційних пунктах призначення.

Якщо розробник тисне кнопку табуляції в командній оболонці, Bash автоматично застосовує закінчення командного рядка, для того щоб підходити до типізованих іменами програм, файлів і змінних. Система припинення командного рядка нескінченно гнучка і керована, і її нерідко складають з функціями, що зберігають аргументи і імена файлів для конкретних програм і завдань. Синтаксис Bash володіє достатньою кількістю розширень, відсутніх в оболонці Bourne.

Регулярні вирази Bash: виконання цельночисленных розрахунків арифметичної оцінки, вживається ((…)) команда і $ ((…)) аргумент синтаксису, спрощує переадресовывание вводу-виводу. Наприклад, він має можливість перенаправляти висновок (stdout) та провал (stderr) синхронно з підтримкою &>оператора. Даний легше ввести, ніж еквівалент оболонки Bourne ‘command > file 2>&1’.

Bash використовує заміщення процесу з підтримкою синтаксису регулярних виразів “Лінукс” і підміняє висновок команди (введення), традиційно застосовує ім’я файлу. При використанні ключового слова «функція», оголошення Bash несумісні зі сценаріями Bourne і Korn, так як оболонка Korn має ту ж проблему при застосуванні «функції», але вона приймає той же синтаксис оголошення функції, що й вищезгадані оболонки, будучи POSIX-сумісної.

З-за цих та інших відмінностей сценарії рідко виконуються під інтерпретаторами Bourne і Korn, якщо вони не були спеціально написані з урахуванням цієї сумісності, що потрібно враховувати при плануванні роботи з регулярними виразами Bash. Асоціативні масиви дозволяють підроблену підтримку індексованих масивів, аналогічно AWK. Bash 4.x не був інтегрований в нову версію MacOS з-за обмежень ліцензії. Приклад асоціативного масиву.