KornShell - это POSIX-совместимый язык оболочки с открытым исходным кодом от AT&T, основанный на исходной оболочке Bourne. Убедитесь, что вы знаете, какой у вас ksh: ksh93 или клон.

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 являются необязательными.