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

Посилання ред.