Оболонка Борна

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Посилання[ред. | ред. код]