Інтерпретатор командної мови bash

Bash – інтерпретатор командної мови UNIX сумісних систем. Виконує команди зі стандартного введення (наприклад, вікно терміналу) або з файлу. У bash також включені корисні розширення оболонок мов Korn та C (команди ksh та csh відповідно)

Синтаксис

bash [options] [file]

Параметри

shopt_option – додаткові параметри оболонки. Читати підрозділ SHELL BUILTIN COMMANDS. Якщо цей параметр присутня6 тоді -0 перед ним встановлює вказаний параметр, а +0 скасовує його. Якщо параметр shopt_option не вказаний, +0 виводить перелік встановлених параметрів на стандартний висновок у форматі що дозволяє повторне використання як вхідні дані.

-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, в якій має бути записано ім'я файлу ініціалізації, жодні інші файли ініціалізації не виконуватимуться.