Кроме стандартной оболочки Korn (/usr/bin/ksh), AIX содержит ее расширенную версию /usr/bin/ksh93. Расширенная версия совместима сверху со стандартной оболочкой, но содержит несколько дополнительных функций, отсутствующих в /usr/bin/ksh. В следующей таблице перечислены все новые функции.
В оболочке /usr/bin/ksh93 есть следующие функции:
| Арифметические расширения | 
 Вы можете вызывать функции libm (математические функции, реализованные в
языке программирования C) в стандартных арифметических выражениях, например
$ value=$((sqrt(9))). В новой оболочке реализовано больше
операторов, включая унарные конструкции +, ++,
-- и  ?: (например, "x ? y : z"),
а также оператор  , (запятая). Поддерживаются арифметические
основания, не превышающие 64. Также поддерживаются вычисления с
плавающей точкой. Для указания количества значащих разрядов можно
ввести "typeset -E", а для указания количества десятичных позиций в
вещественной переменной - "typeset -F". Переменная
SECONDS теперь округляет число секунд сверху до ближайшей сотни, а
не до целого числа секунд.
  | 
| Составные переменные | 
 В оболочке ksh93 поддерживаются составные переменные. Составные переменные позволяют указывать несколько значений с помощью одного имени переменной. Конкретные значения указываются по индексу, отделенному от имени переменной с помощью точки . Например: 
 $ myvar=( x=1 y=2 ) 
$ print "${myvar.x}" 
1
 | 
| Присвоения составных переменных | 
 Присвоение составных переменных поддерживается при инициализации массивов, как индексированных, так и именованных. Присваиваемые значение нужно заключить в скобки, как показано в следующем примере: 
 $ numbers=( zero one two three ) 
$ print ${numbers[0]} ${numbers[3]} 
zero three   
 | 
| Именованные массивы | Именованный массив - это массив, в котором в качестве индексов
применяются строковые значения. 
 Для работы с именованными массивами применяется команда typeset с флагом -A. Например: 
 $ typeset -A teammates 
$ teammates=( [john]=smith [mary]=jones ) 
$ print ${teammates[mary]} 
jones
 | 
| Ссылки на переменные | 
 С помощью команды typeset с флагом -n можно присвоить одной переменной значение ссылки на другую. В этом случае изменение значения одной переменной немедленно вызовет изменение значения другой. Например: 
 $ greeting="hello" $ typeset -n welcome=greeting # создание ссылки $ welcome="Привет!" # переопределение значения $ print $greeting Привет!  | 
| Развертывание параметров | 
 В оболочке ksh93 применяются следующие конструкции развертывания параметров: 
  | 
| Дисциплинарные функции | 
 Дисциплинарная функция - это функция, связанная с конкретной переменной. Эта функция будет вызываться каждый раз при обращении, присвоении или сбросе переменной. Функции задаются в виде переменная.функция, где переменная - это имя переменной, а функция - дисциплинарная функция. Есть три предопределенных дисциплинарных функции: get, set и unset. 
 Во всех дисциплинарных функциях специальная переменная .sh.name равна имени переменной, а .sh.subscript - ее индексу, если он есть.  | 
| Среда выполнения функции | 
 Функции, объявленные в формате function  функция,
выполняются в отдельной среде. Функции, объявленные в формате
функция(), выполняются в той же среде, что и
родительская оболочка.
  | 
| Переменные | 
 Переменные, начинающиеся с .sh., зарезервированы оболочкой и имеют специальное значение. Переменные .sh.name, .sh.value и .sh.subscript описаны в разделе Дисциплинарные функции. Кроме того, переменная .sh.version содержит значение версии оболочки. Примечание: Переменная ERRNO более не
используется.
  | 
| Значения, возвращаемые командами | 
 Команды оболочки ksh93 возвращают следующие значения: 
  | 
| Правила поиска в PATH | 
 Сначала выполняется поиск специальных встроенных команд, затем всех
остальных функций (включая находящиеся в каталогах FPATH), а затем всех
встроенных функций. Ранее встроенные функции просматривались до обычных
функций, а функции в FPATH просматривались только после завершения просмотра
каталогов из PATH.
  | 
| Хронология оболочки | 
 Команда hist позволяет просматривать список выполнявшихся ранее
команд и редактировать выбранные команды. В оболочке ksh применялась
команда fc. Теперь команда fc - это псевдоним
команды hist. Переменная HISTCMD увеличивается на единицу
каждый раз при вызове команды в оболочке, а переменная HISTEDIT указывает,
какой редактор нужно применять при вызове команды hist.
  | 
| Встроенные команды | 
  |