Оболонка Борна
Оболонка Борна (англ. 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.](англ.)