Мови сценаріїв (частина 1)
На вибраних прикладах ця лекція показує, наскільки широкі можливості програм оболонки під Linux. Зокрема, ця перша частина детально охоплює регулярні вирази та дає огляд багатьох маленьких інструментів, які можуть зробити для вас стільки роботи.

Огляд
Наступний огляд показує всі важливі метасимволи, які можна використовувати в регулярних виразах.
. Підтримує будь-якого персонажа. * Захищає будь-яку кількість випадків появи персонажа безпосередньо перед ним. [. ] Означає один із символів, укладених у квадратні дужки. \ < n, m \>Повторюється повторення одного символу, що передує йому. ^ Припускає, що виконана наступна логічна умова на початку рядка. $ Припускає, що виконана наступна логічна умова в кінці рядка. \ Спеціальне значення наступного символу скасовано. \ (\) Передає шаблон, укладений між \ (і \), у спеціальний буфер. Таким чином можна зберегти до дев'яти шаблонів в одному рядку. \ n Означає n-й шаблон, який раніше було збережено за допомогою \ (та \).
Ефект окремих метасимволів слід дещо прояснити на наступних простих прикладах.
Арифметика
Баш дозволяє проводити арифметичні обчислення. Вираз у $ [. ] оцінюється за звичайними правилами. Окрім цілочисельних основних арифметичних операцій, підтримується цілий ряд бітових операцій та логічних операцій.
Наступний сценарій оболонки очікує число як параметр. Він зараховується від 1 до цього числа, при цьому число виводиться щосекунди.
Виведення програм
Висновки програм можна легко використовувати у сценарії оболонки. Це між `. `Закриті команди виконуються в цей момент, і результати команди можуть бути використані в сценарії.
Наступний приклад читає у низці файлів Postscript, скільки сторінок вони містять, і додає всі сторінки.
Перенаправлення файлу
Bash пропонує безліч варіантів переспрямування результатів роботи програм. Слід представити дві особливо цікаві можливості.
1. Об’єднайте stdout і stderr
Багато програм записують свої результати у stdout та stderr. Якщо обидва потоки мають бути спрямовані в один файл, виконайте наступні дії:
Вираз означає, що висновок з stderr перенаправляється на stdout, який, у свою чергу, виводиться у файл file_out.
2-й випуск на stderr
Іноді виникає бажання записати вихідні дані у скрипт stderr, щоб відокремити вихідні дані сценарію оболонки. За допомогою echo та перенаправлення файлів це можливо наступним чином:
Виходи відображаються на stderr .
Тут документи
За допомогою команди echo та перенаправлення файлу можна створити новий файл із сценарію оболонки:
Якщо у файл слід постійно записувати кілька рядків, замість кількох рядків-лун можна використовувати таке рішення:
Вхідний роздільник
Наступна проблема: У сценарії оболонки текстовий файл слід читати поле за полем, поля розділяються вкладками. Зазвичай подають наступні рядки
файл слово за словом.
Щоб розділити рядок на окремі слова, Bash використовує внутрішню змінну IFS, яка містить усі можливі роздільники. IFS = встановлюється тут за замовчуванням.
Поставлена вище проблема тепер вирішується за допомогою таких рядків:
Говорячий годинник
Дещо ширшим прикладом програмування оболонки є годинник, що говорить. По суті, Скірпт володіє трьома різними типами годинників: годинником, що говорить, церковним годинником та годинником із зозулею. При перших двох час відображається кожні чверть години, повідомляючи про час за допомогою готових звукових файлів або відповідно натискаючи на годинник. Годинник із зозулею показує кількість годин кожну повну годину.
Найпростіший спосіб зателефонувати на годинник - через crontab. Наступні звукові файли також потрібні для використання годинника.
У наступному огляді представлена низка більш-менш потужних програм, які можуть бути різноманітними для написання сценаріїв оболонки.