Оболонка Борна
Оболонка Борна (англ. Bourne Shell) — оболонка, що була основною у 7-ій версії Unix і замінила оболонку Томпсона, чий файл мав таку ж назву sh. Вона була розроблена Стівеном Борном в AT&T Bell Laboratories, і випущена в 1977 році в версії 7 Unix і розповсюджена серед коледжів та університетів. Програма оболонки або сумісна програма розміщена в /bin/sh у більшості Unix систем, і досі за замовчуванням оболонка для суперкористувача в багатьох сучасних реалізаціях Unix.
Походження[ред. | ред. код]
Оболонка розроблена як заміна для оболонки Томпсона. Серед її основних завдань:
- Використовувати скрипти як фільтри.
- Забезпечити перепрограмованість оболонки, включаючи контроль потоку і змінних.
- Контроль над усіма дескрипторами вводу/виводу файлів.
- Контроль за обробкою сигналу в сценарії.
- Ліквідація обмежень на довжину рядка при інтерпретації скриптів.
- Оптимізація та узагальнення механізму лапок для буквального тексту.
- Механізм середовища. Це дозволило скриптам передавати контекст, створений при старті до інших сценаріїв (процесів) без використання явних позиційних параметрів.
Основі риси[ред. | ред. код]
Хоч оболонка використовувалася як інтерактивний командний інтерпретатор, вона була задумана як скриптова мова. Борн скопіював всі основні оператори з мови Алгол 68. Оболонка отримала популярність з публікацією книжки Браяна В. Кернігана і Роба Пайка «Unix. Програмне оточення» (англ. «The Unix Programming Environment»). Це був перший комерційно опублікований підручник, який представив оболонку, як мову програмування.
Оболонка також стала першою, в якій використовувався дескриптор файлу 2> для повідомлень про помилки, що дозволило набагато більший програмний контроль у скриптах шляхом повідомлення про помилки окремо від даних.
Інші нововведення в цій оболонці:
- Заміна команди використанням тонового апострофа (`команда`).
- Використання << для вбудовування блоку вводу тексту в скрипт.
- "for ~ do ~ done" цикли, зокрема, використання $* в циклі.
- "case ~ in ~ esac" механізм відбору, в першу чергу призначений для надання допомоги при розборі аргументу.
- Надано підтримку змінним середовища використовуючи ключові слова, параметри та експортування змінних.
Протягом багатьох років, оболонка поліпшувалася в АТ&Т. В різних варіантах оболонка була випущена з версією 7, SystemIII, SVR2, SVR3, SVR4 тощо. У самій оболонці не було версій, тож єдиний спосіб визначити чи функція присутня було її тестування в скрипті.
Використання[ред. | ред. код]
Оболонка Борна колись була стандартом на всіх Unix системах, хоча історично в BSD системах багато скриптів написано в оболонці С. Скрипти для оболонки Борна, як правило, можуть бути запущені без зміни з bash або dash на Linux або інших Unix-подібних системах.
Джерела[ред. | ред. код]
- UNIX. Программное окружение / Б. Керниган, Р. Пайк. – М .: Символ-Плюс, 2012. – 416 с. (рос.)
Посилання[ред. | ред. код]
- UNIX Shell Script Tutorials & Reference(англ.)
- UNIX/Linux Bourne/Bash Shell Scripting Tutorial [Архівовано 15 серпня 2006 у Wayback Machine.](англ.)
- The individual members of "The Traditional Bourne Shell Family" [Архівовано 4 травня 2019 у Wayback Machine.](англ.)
- Actual C source code for the Bourne shell using mac.h macros [Архівовано 6 вересня 2006 у Wayback Machine.](англ.)
- Original Bourne Shell documentation from 1978 [Архівовано 4 липня 2006 у Wayback Machine.](англ.)
- A port of the "heirloom" SVR4 Bourne shell from OpenSolaris to other Unix-like systems [Архівовано 20 серпня 2006 у Wayback Machine.](англ.)
|