Взаимодействие с оболочкой Борна в версии 7 Unix | |
Оригинальный автор (ы) | Стивен Борн |
---|---|
Разработчик (и) | Bell Telephone Laboratories |
Первоначальный выпуск | 1979; 41 год назад (1979 г.) |
Операционная система | Unix |
Тип | оболочка Unix |
Лицензия |
Bourne shell (sh
) является оболочкой, или интерпретатор командной строки, для компьютеров операционных систем.
Оболочка Борна была оболочкой по умолчанию оболочкой для Версии 7 Unix. Unix-подобные системы по-прежнему имеют / bin / sh
- это будет оболочка Bourne, или символическая ссылка или жесткая ссылка в совместимую оболочку - даже если большинство пользователей использует другие оболочки.
Разработанный Стивеном Борном в Bell Labs, он был заменой оболочки Томпсона, исполняемый файл которой имел то же имя - ш
. Он был выпущен в 1979 году в версии 7 для Unix, распространяемой среди колледжей и университетов. Хотя он используется как интерактивный интерпретатор команд, он также был задуман как язык сценариев и содержит большинство функций, которые обычно считаются для создания структурированных программ.
Он приобрел популярность с публикацией The Unix Programming Environment Брайаном Керниганом и Робом Пайком - первой коммерчески опубликованной книги, которая представила shell как язык программирования в виде учебника.
Работа над оболочкой Bourne первоначально началась в 1976 году. Впервые она появилась в Version 7 Unix, Bourne оболочка заменила оболочку Mashey.
. Некоторые из основных задач оболочки были:
Возможности оболочки Bourne UNIX Версии 7:
`command`
.<<
для встраивания блок ввода текста внутри скрипта.for ~ do ~ done
циклы, в частности использование $ *
для перебора аргументов, а также for ~ in ~ do ~ done
циклы для перебора списков.case ~ в ~ механизме выбора esac
, в первую очередь предназначенном для помощи при синтаксическом анализе аргументов .sh
обеспечивает поддержку переменных среды с использованием параметров ключевого слова и экспортируемых переменных.Оболочка Bourne также была первой, в которой было реализовано соглашение об использовании файлового дескриптора 2>
для сообщений об ошибках, что позволяет значительно расширить программный контроль во время написания сценариев, сохраняя сообщения об ошибках отдельно от данных.
На стиль кодирования Стивена Борна повлиял его опыт работы с компилятором ALGOL 68C, над которым он работал в Кембриджском университете. В дополнение к стилю, в котором была написана программа, Борн повторно использовал части if~ из ALGOL 68, затем ~ elif ~, затем ~ else~ fi
, case~ in~ esac
и для / while ~ do~ od
"(с использованием done
вместо od
) в общем синтаксисе оболочки Bourne Unix. Более того, - хотя оболочка v7 написана на C - Bourne воспользовался преимуществами некоторых макросов , чтобы исходный код C разновидность ALGOL 68. Эти макросы (вместе с командой finger, распространяемой в версии Unix 4.2BSD ) вдохновили International Obfuscated C Code Contest (IOCCC).
С годами оболочка Bourne была усовершенствована в ATT. Таким образом, различные варианты называются так же, как и соответствующая версия ATT Unix it был выпущен с (некоторыми важными вариантами являются Version7, SystemIII, SVR2, SVR3, SVR4). Поскольку версия оболочки никогда не была версирована, единственный способ определить ее - это проверить ее способность ures.
Особенности версий оболочки Bourne с 1979 года включают:
test
- оболочка System III (1981)продолжить
с аргументом - оболочка системы III (1981)cat <<-EOF
для документов с отступом - System III shell (1981)return
builtin - SVR2 shell (1984)unset
, echo
, type
- оболочка SVR2 (1984)$ @
" - оболочка SVR3 (1986)getopts
- оболочка SVR3 (1986)Duplex Multi-Environment R eal-Time (DMERT ) - это гибридная операционная система с разделением времени / реального времени, разработанная в 1970-х годах в Bell Labs Indian Hill в Нейпервилле, штат Иллинойс использует снимок Борна 1978 года Оболочка «ВЕРСИЯ sys137 ДАТА 1978, 12 октября, 22:39:57». Оболочка DMERT работает на компьютерах 3B21D, которые все еще используются в телекоммуникационной отрасли.
оболочка Korn (ksh), написанная Дэвидом Корном на основе исходного кода оболочки Bourne Shell, была промежуточным звеном между оболочкой Bourne и Оболочка C. Его синтаксис в основном был взят из оболочки Bourne, в то время как функции управления заданиями напоминали таковые из оболочки C. Функциональные возможности исходной оболочки Korn Shell (известной как ksh88 с года ее появления) были использованы в качестве основы для стандарта оболочки POSIX. Более новая версия, ksh93, имеет открытый исходный код с 2000 года и используется в некоторых дистрибутивах Linux. Клон ksh88, известный как pdksh, является оболочкой по умолчанию в OpenBSD.
Schily-Tools Йорга Шиллинга включает три производных Bourne Shell.
Bill Joy, автор оболочки C, раскритиковал оболочку Bourne как неудобную для интерактивного использования - задачу, в решении которой сам Стивен Борн признал превосходство оболочки C. Однако Борн заявил, что его оболочка лучше подходит для написания сценариев и доступна в любой системе Unix, и Том Кристиансен также критиковал оболочку C за непригодность для написания сценариев и программирования.
Из-за проблем с авторским правом, связанных с оболочкой Bourne Shell, которая использовалась в исторических CSRG выпусках BSD, Кеннет Алмквист разработал клон Bourne Shell, известный некоторым как оболочка Almquist и доступен по лицензии BSD, которая используется сегодня на некоторых потомках BSD и в ситуациях с нехваткой памяти. Оболочка Almquist была перенесена на Linux, и порт переименовал в оболочку Debian Almquist, или тире. Эта оболочка обеспечивает более быстрое выполнение стандартных сценариев sh
(и стандартных POSIX sh
в современных потомках) с меньшим объемом памяти, чем ее аналог, Bash. Его использование имеет тенденцию раскрывать bashisms - ориентированные на bash допущения, сделанные в сценариях, предназначенных для запуска на sh.
Оболочка Bourne когда-то была стандартной для всех фирменных систем Unix, хотя исторически В системах на основе BSD было много скриптов, написанных на csh. На основе синтаксиса POSIX sh
сценарии оболочки Bourne обычно могут запускаться с Bash или dash в GNU / Linux или другие Unix-подобные системы.
В Викиучебнике есть книга по теме: Сценарии оболочки Борна |