Оболочка Борна - Bourne shell
Взаимодействие оболочки Борна на Версия 7 Unix | |
Оригинальный автор (ы) | Стивен Борн |
---|---|
Разработчики) | Bell Telephone Laboratories |
изначальный выпуск | 1979 |
Операционная система | Unix |
Тип | Оболочка Unix |
Лицензия | [под обсуждение] |
В Оболочка Борна (ш
) это ракушка интерпретатор командной строки для компьютера операционные системы.
Оболочка Bourne была по умолчанию ракушка за Версия 7 Unix. Unix-подобный системы продолжают иметь / bin / sh
- это будет оболочка Борна или символическая ссылка или же жесткая ссылка в совместимую оболочку - даже если большинство пользователей использует другие оболочки.
Разработан Стивен Борн в Bell Labs, это была замена Оболочка Томпсона, исполняемый файл которого имел то же имя -ш
. Он был выпущен в 1979 году в версии 7 для Unix, распространяемой среди колледжей и университетов. Хотя он используется как интерактивный интерпретатор команд, он также задумывался как язык сценариев и содержит большинство функций, которые обычно считаются для создания структурированных программ.
Он приобрел популярность с публикацией Среда программирования Unix к Брайан Керниган и Роб Пайк - первая коммерчески опубликованная книга, в которой оболочка представлена как язык программирования в виде учебника.
История
Происхождение
Работа над оболочкой Bourne началась в 1976 году.[1] Впервые появившись в Версия 7 Unix,[2] оболочка Борна заменила Машей оболочка.
Некоторые из основных целей оболочки были:[3]
- Позволять сценарии оболочки использоваться как фильтры.
- Для обеспечения возможности программирования, включая поток управления и переменные.
- Контроль над всем вводом / выводом файловые дескрипторы.
- Контроль над обработка сигналов внутри скриптов.
- Нет ограничений на длину строки при интерпретации сценариев оболочки.
- Рационализировать и обобщить механизм цитирования строк.
- В механизм окружающей среды. Это позволило установить контекст при запуске и дало возможность сценариям оболочки передавать контекст во вспомогательные сценарии (процессы ) без использования явного позиционные параметры.
Особенности оригинальной версии
Возможности оболочки Bourne UNIX версии 7:
- Скрипты можно вызывать как команды, используя их имя файла.
- Может использоваться интерактивно или не интерактивно
- Позволяет как синхронное, так и асинхронное выполнение команд
- Поддерживает перенаправление ввода и вывода и конвейеры
- Предоставляет набор встроенных команд
- Предоставляет конструкции управления потоком, расценки и функции.
- Бестиповые переменные
- Предоставляет локальную и глобальную переменную
- Скрипты не требуют компиляции перед выполнением
- Не имеет средства goto, поэтому может потребоваться реструктуризация кода
- Подстановка команд с помощью обратные цитаты:
`команда`
. - Здесь документы с помощью
<<
для встраивания блока входного текста в сценарий. для ~ сделать ~ сделано
петли, в частности использование$*
для перебора аргументов, а такжедля ~ в ~ делать ~ готово
циклы для перебора списков.case ~ in ~ esac
механизм выбора, в первую очередь предназначенный для помощи анализ аргументов.ш
обеспечивает поддержку переменных среды с использованием параметров ключевого слова и экспортируемых переменных.- Содержит строгие положения для управления вводом и выводом, а также сопоставление выражений удобства.
Оболочка Bourne также была первой, в которой использовалось соглашение об использовании дескриптор файла 2>
за Сообщения об ошибках, что позволяет значительно расширить программный контроль во время написания сценариев за счет отделения сообщений об ошибках от данных.
На стиль программирования Стивена Борна повлиял его опыт работы с АЛГОЛ 68C компилятор[2] над которым он работал Кембриджский университет. Помимо стиля, в котором была написана программа, Борн повторно использовал части АЛГОЛ 68 с если ~ тогда ~ Элиф ~ тогда ~ еще ~ фи
, дело ~ в ~ esac
и за/пока ~ делать ~ od
" (с помощью сделано
вместо od
) в общих Unix Синтаксис оболочки Борна. Более того, - хотя оболочка v7 написана на C - Борн воспользовался некоторыми макросы[4] дать C исходный код ароматизатор АЛГОЛ 68. Эти макросы (вместе с Палец команда распространяется в версии Unix 4.2BSD ) вдохновил Международный конкурс запутанного кода C (IOCCC).[5]
Функции, введенные после 1979 года
С годами оболочка Bourne совершенствовалась в AT&T. Таким образом, различные варианты называются так же, как соответствующая версия AT&T Unix, с которой она была выпущена (некоторые важные варианты: Version7, SystemIII, SVR2, SVR3, SVR4). Поскольку оболочка никогда не версировалась, единственный способ определить ее - проверить ее функции.[6]
Особенности версий оболочки Bourne с 1979 года включают:[7]
- Встроенный
тест
команда - оболочка System III (1981) - # как символ комментария - оболочка System III (1981)
- Двоеточие в заменах параметров "$ {parameter: = word}" - оболочка System III (1981)
Продолжить
с аргументом - оболочка System III (1981)кошка << - EOF
для документов с отступом - оболочка System III (1981)- Функции и
возвращаться
встроенный - оболочка СВР2 (1984) - Встроенные
сброшен
,эхо
,тип
- снаряд СВР2 (1984 г.) - Исходный код де-ALGOL68-ized - оболочка SVR2 (1984)
- Современное "
$@
»- снаряд СВР3 (1986 г.) - Встроенный
Getopts
- снаряд СВР3 (1986) - Улучшенная обработка параметров позволяет рекурсивно вызывать функции - оболочка SVR3 (1986)
- 8-битный чистый - оболочка SVR3 (1986)
- Управление заданиями - оболочка SVR4 (1989 г.)
- Многобайтовая поддержка - оболочка SVR4 (1989)
Варианты
Оболочка DMERT
Дуплекс в нескольких средах в реальном времени (DMERT ) - это гибридная операционная система с разделением времени / реального времени, разработанная в 1970-х годах в Bell Labs Indian Hill в г. Нейпервилл, Иллинойс использует моментальный снимок Bourne Shell 1978 г. "VERSION sys137 DATE 1978 Oct 12 22:39:57".[нужна цитата ] Оболочка DMERT работает на 3B21D компьютеры все еще используются в телекоммуникационной отрасли.[нужна цитата ]
Корн оболочка
В Корн оболочка (ksh) написано Дэвид Корн на основе исходного исходного кода Bourne Shell,[8] был промежуточным звеном между оболочкой Борна и Оболочка C. Его синтаксис в основном был взят из оболочки Bourne, в то время как его контроль работы функции напоминали таковые из оболочки C. Функциональность оригинальной оболочки Korn Shell (известной как ksh88 с года ее появления) была использована в качестве основы для POSIX стандарт оболочки. Более новая версия, ksh93, имеет открытый исходный код с 2000 года и используется на некоторых Дистрибутивы Linux. Клон ksh88, известный как pdksh является оболочкой по умолчанию в OpenBSD.
Шили Борн Шелл
Schily-Tools Йорга Шиллинга включает три производных Bourne Shell.[9]
Отношение к другим оболочкам
Оболочка C
Билл Джой, автор Оболочка C, раскритиковал оболочку Bourne как неудобную для интерактивного использования,[10] Задача, в решении которой сам Стивен Борн признал превосходство C shell. Однако Борн заявил, что его оболочка лучше подходит для написания сценариев и доступна в любой системе Unix,[11] и Том Кристиансен также критиковал оболочку C за непригодность для написания сценариев и программирования.[12]
Ракушки Альмквиста
Из-за проблем с авторским правом, связанных с оболочкой Bourne Shell, поскольку она использовалась в исторических CSRG Выпуская BSD, Кеннет Алмквист разработал клон Bourne Shell, известный некоторым как Раковина альмквиста и доступен под Лицензия BSD, который используется сегодня в некоторых потомках BSD и в ситуациях с нехваткой памяти. Оболочка Almquist была перенесена на Linux, и порт переименовал Оболочка Debian Almquist, или тире. Эта оболочка обеспечивает более быстрое выполнение стандартных ш
(и стандарт POSIX ш
, в современных потомках) скрипты с меньшим объемом памяти, чем его аналог, Bash. Его использование имеет тенденцию обнажать башизмы - bash-ориентированные предположения, сделанные в сценариях, предназначенных для запуска на sh.
Другие снаряды
- Баш (в Оболочка Bourne-Again) был разработан в 1989 г. для Проект GNU и включает функции оболочки Bourne, csh и ksh. Он должен быть совместим с POSIX.
- rc был создан в Bell Labs к Том Дафф как замена sh для Версия 10 Unix. Это оболочка по умолчанию для План 9 от Bell Labs. Он был перенесен на UNIX как часть План 9 из пользовательского пространства.
- Z оболочка, разработанный Полом Фалстадом в 1990 году, представляет собой расширенную оболочку Борна с большим количеством улучшений, включая некоторые особенности Баш, кш, и tcsh.
использование
Раковина Bourne когда-то была стандартом для всех фирменных Unix системы, хотя исторически BSD -системы имели много скриптов, написанных на csh. В основе POSIX ш
синтаксис, сценарии оболочки Bourne обычно можно запускать с Баш или же бросаться на GNU /Linux или другой Unix-подобный системы.
Смотрите также
Рекомендации
- ^ https://www.bsdcan.org/2015/schedule/events/612.en.html Стивен Борн Ключевой доклад BSDCan 2015
- ^ а б Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.
- ^ "Азбука языков программирования: оболочка Борна или sh". computerworld.com.au. Архивировано из оригинал 11 января 2010 г.. Получено 6 марта 2009.
- ^ Борн, Стив (12 января 1979 г.). "mac.h - Макросы, используемые Борном для структурирования C, например Algol68C". Корпорация AT&T. Получено 9 сентября 2006.
- ^ Лэндон Курт Нолл; Саймон Купер; Питер Сибах и Леонид А. Броухис (2004). «Часто задаваемые вопросы о IOCCC - Q / A: Как начинался IOCCC?». www.ioccc.org. Получено 9 сентября 2006.
- ^ "что это за оболочка". www.in-ulm.de.
- ^ "традиционное семейство раковин Борна / история и развитие". www.in-ulm.de.
- ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня», Материалы симпозиума USENIX 1994 по языкам очень высокого уровня, Ассоциация USENIX, получено 5 февраля 2015,
Вместо того, чтобы изобретать новый язык сценариев, мы создали систему ввода формы, изменив оболочку Bourne, добавив при необходимости встроенные команды.
- ^ «Schily Bourne Shell - современный усовершенствованный и POSIX-совместимый исходный код Bourne Shell, поддерживаемый Йоргом Шиллингом». Schily-Tools.
- ^ Введение в оболочку C к Билл Джой.[страница нужна ]
- ^ Борн, Стивен Р. (октябрь 1983 г.). "Оболочка Unix". БАЙТ. п. 187. Получено 30 января 2015.
- ^ Том Кристиансен (28 сентября 1995 г.). «Программирование на Csh считается вредным». Получено 17 февраля 2014.
внешняя ссылка
В этом разделе использование внешняя ссылка может не следовать политикам или рекомендациям Википедии.Август 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
- Отдельные члены «Традиционной семьи ракушек Борна»
- «Характерные общие свойства традиционных снарядов Борна»
- Исторический исходный код оболочки Bourne на C с использованием макросов mac.h 1979 г.
- Оригинальная документация Bourne Shell 1978 г.
- Перенос "семейной" оболочки SVR4 Bourne из OpenSolaris на некоторые другие Unix-подобные системы.
- Переход с оболочки System V (SVR4) на оболочку POSIX
- Учебник Bourne Shell (синтаксис)
- Часто задаваемые вопросы различия в оболочке
- Говард Дахда, A – Z языков программирования: оболочка Bourne, или sh - подробное интервью со Стивом Борном, создателем оболочки Bourne, или sh, Computerworld, 5 марта 2009 г.