Інтерпретатор командної мови bash
Bash – інтерпретатор командної мови UNIX сумісних систем. Виконує команди зі стандартного введення (наприклад, вікно терміналу) або з файлу. У bash також включені корисні розширення оболонок мов Korn та C (команди ksh та csh відповідно)
Синтаксис
bash [options] [file]
Параметри
| -cstring | Якщо цей параметр присутній, то команда буде зчитана з рядкаstring. Якщо в команді, що передається, є додаткові аргументи, вони вважаються позиційними і починаються з $0. (РозділАргументи ) |
| -i | Інтерактивна робота інтерпретатора |
| -l | Дивитися INVOCATION нижче |
| -r | Обмеження у роботі оболонки. Дивитися RESTRICTED SHELL |
| -s | Якщо вказано цей параметр і немає всіх необхідних аргументів, вони зчитуються зі стандартного введення |
| -D | Список всіх рядків ув'язнених у подвійні лапки з $ на початку виводяться на стандартний висновок. Необхідне для виконання перекладу. Ніякі команди не виконуватимуться |
| [-+]0[shopt_option] | |
| - | Сигналізує закінчення установки параметрів. Будь-які параметри після нього розглядаються як імена файлів та аргументи для скрипту.Параметр "-" еквівалентний "--". |
Bash дозволяє використовувати багатосимвольні параметри. Вони мають бути описані перед односимвольними, для їхнього коректного розпізнавання.
| --debugger | Запуск профайлу відладчика перед запуском скрипта. Включає розширений режим налагодження (докладніше в описіextdebug ) і запускає функцію трасування (див. опис параметра-o ). |
| --dump-po-string | Еквівалентно -D, але висновок робиться формат файлу локалізацій .po |
| --dump-strings | Повністю аналогічно -D |
| --help | Підказка |
| --init-filefile | |
| --rcfilefile | Якщо інтерпретатор запускається в інтерактивному режимі, то виконує команди ініціалізації та вказаного файлуfile, а не зі стандартного файлу ініціалізації |
Аргументи
Якщо після обробки параметрів залишаються аргументи не пов'язані з параметрами -з або -s, то перший аргумент вважається ім'ям файлу, що містить скрипт із командами. $0 записується ім'я файлу та інші аргументи записуються попозиционно. Bash зчитує команди скрипту, виконує їх і виходить. Статус завершення дорівнюватиме статусу завершення останньої виконаної команди скрипту. Якщо не виконувалось жодної команди, значення, що повертається буде "0". Спочатку робиться спроба відкрити скрип з поточної папки, якщо його там немає, буде зроблено пошук вказаного файлу відповідно до змінної PATH для скриптів.
Виклик bash
loginshell- якщо перший символ після -- 0 або запуск виконано з параметром -login.
interactiveshell-інтерактивна робота. Якщо запускзроблено без аргументів і без параметра -c зі стандартним пристроєм введення виведення у вигляді terminal.app або запуск із параметром -i.
Обробка файлів ініціалізації. Якщо якийсь із файлів з параметрами ініціалізації існує, але його неможливо прочитати, bash у Mac повідомляє про помилку.
Коли баш запускається в інтерактивному режимі або login режимі, в першу чергу зчитуються та виконуються команди з файлу/etc/profile(якщо він є), після цього перевіряється наявність файлів
/.profile і якщо вони в наявності і доступні, команди з них виконуються в тому ж порядку як вони зараховані. Щоб пропустити процес обробки вищезазначених файлом, можна використовувати параметр--noprofile
Якщо bash був запущений у режимі login, перевіряється та у разі наявності виконується файл
У разі запуску в інтерактивному режимі, без режиму login під час запуску додатково виконується файл
/.bashrc. Для відключення файлу використовується параметр--norc або--rcfilefile для заміни виконуваного файлу на інший (file).
Коли bash запускається у звичайному режимі, наприклад для виконання скрипта, він переглядає глобальну змінну оточення BASH_ENV і використовує її значення для пошуку файлу, що виконується.
Коли bash викликається командоюsh, він намагається використовувати найстарішу версію для забезпечення сумісності з стандартом POSIX. Коли викликається в інтерактивному режимі або в режимі --login в першу чергу зчитуються та виконуються послідовно файли/etc/profileта
/.profile, для заборони використання цих файлів призначено параметр--noprofile. Також в інтерактивному режимі зчитується значення змінної ENV для використання його вяк шлях для пошуку виконуваного файлу. При запуску командою sh параметр запуску --rcfile ігнорується та не може бути використаний. При запуску в стандартному режимі файли конфігурації не використовуються, робота інтерпретатора йде в POSIX режимі.
Коли bash запущено в режимі posix за допомогою параметра в командному рядку--posix інтерпретатор дотримуватиметься стандарту POSIX для файлів ініціалізації. У цьому випадку інтерактивний режим використовує значення змінної ENV, в якій має бути записано ім'я файлу ініціалізації, жодні інші файли ініціалізації не виконуватимуться.