Описание тега ksh
KornShell был создан Дэвидом Корном из AT&T. Он был создан в Bell Labs (тогда AT&T) как логический преемник оболочки Bourne в качестве интерпретатора командной строки UNIX и языка сценариев.
KornShell совместим по синтаксису с исходной оболочкой Bourne и добавляет несколько функций, таких как интерактивный редактор командной строки, функции с локальными переменными и арифметические операции.
История
KornShell изначально распространялся как часть AT&T Toolchest в начале 80-х.
Существует множество различных версий KornShell, и важно знать, какие они есть.
Ksh93 в настоящее время находится в версии [ksh93u+
] (Долгое время его распространяла AT&T, теперь она переместилась на GitHub https://github.com/att/ast) и распространяется по общественной лицензии Eclipse в рамках проекта AST (AT&T Software Tools), в котором работает Дэвид Корн и Гленн Фаулер.
- Предшественник Ksh93 ksh88 был последней официальной версией KornShell в AT&T Toolchest.
- Компания Mortice Kern Systems перенесла ksh88 в DOS/Windows и внедрила Microsoft в свой набор инструментов UNIX для Windows. В конечном итоге Microsoft перешла на Interix для своего набора инструментов UNIX.
- Поставщики UNIX включили ksh88 в свой продукт и улучшили его (Sun Microsystems добавила интернационализацию).
- pdksh распространялся для UNIX (подобных) систем, но в нем отсутствовали некоторые особенности оригинала.
- mksh - современный преемник pdksh; Дэвид Корн согласился, что это хорошо, если его нельзя спутать с исходным ksh, поэтому, пожалуйста, добавьте тег mksh для вопросов, связанных с ним (он по теме в большинстве мест, связанных с ksh)
- ksh93 находится в разработке командой AST с момента его создания, примерно 1 крупное обновление в год. Долгое время ksh93 был доступен только коммерчески, но со временем был открыт с открытым кодом.
особенности
Следующий список включает функции ksh88 и ksh93
- редактирование командной строки - режим vi или emacs
история командной строки - используйте vi/emacs/ клавиши со стрелками для вызова предыдущих команд
Функции
- локальные переменные в функциях
- арифметические (( ...)) и $(( ...))
- арифметика с плавающей запятой (начиная с ksh93)
- встроенные замены для многих стандартных команд unix
Стандартизация
KornShell (ksh93) лежал в основе стандарта POSIX sh, хотя не все функции ksh93 включены, а некоторые функции оболочки posix являются необязательными.