general

What is KornShell?
KornShell is a command and scripting language that is a superset of the System V UNIX shell, aka, BourneShell (or sh).
What is ksh?
ksh is the name of the program that implements the KornShell language.
What is the history of ksh?
ksh was written by David Korn at Bell Telephone Laboratories. David Korn is currently at AT&T Research. The first version of ksh was in 1983. It was the first shell to have command line editing with both emacs and vi style interaction. The 1986 version was the first to offer multibyte support. The 1988 version of ksh is the version that was adopted by System V Release 4 UNIX and was a source document for the IEEE POSIX and ISO shell standards. The 1993 version is a major rewrite of the 1988 version and focuses more on scripting.
Where is the official description of the KornShell language?
The Bolsky and Korn book, The KornShell Command and Programming Language, published by Prentice Hall, defines the 1988 version. The newer Bolsky and Korn book, The New KornShell Command and Programming Language, also published by Prentice Hall, describes the 1993 version. There are many new features since this book was published and the man page for ksh93 is kept up to date.
What are the major new features of KornShell 1993?
The only major new interactive features are key binding and tab completion. Major new language features are floating point arithmetic, associative arrays, complete ANSI C printf, name reference variables, new expansion operators, dynamic loading of built-in commands, active variables, and compound variables. Active and compound variables allow shell variables to behave like objects. The ability to define types was added in 2009. In addition, ksh93 has been written to be extensible with an C language API for programming extensions.
Are any further releases of ksh planned?
Yes, the KornShell language and ksh implementation are in active development. Most of the focus will be on scripting and reusability.
Why are newer release of ksh still called ksh93?
We started the AST/ksh OpenSource release process in the late 90's. At that point ksh93 was the well-known name for ksh. The OpenSource release was finally granted in March 2000. No one has since volunteered to repeat that process for kshXX.
How can I determine the release or version of a particular ksh?
The current version and release string may be accessed by ${.sh.version} and $KSH_VERSION. The format is Version features 93version[-/+] release:
  • features -- compile time features, typically enabled by SHOPT_foo state variables in the ksh93 Makefile. A single letter represents each feature:
    • A (SHOPT_AUDIT)
    • B (SHOPT_BASH) bash compatibility mode.
    • J (SHOPT_COSHELL) -lcoshell job pools.
    • j (SHOPT_BGX)
    • L (SHOPT_ACCT)
    • M (SHOPT_MULTIBYTE)
    • P (SHOPT_PFSH)
    • R (SHOPT_REGRESS)
  • version-- a lowercase letter signifying major release points. An optional - following features signifies an alpha release. The first stable release has no -. An optional + signifies a stable release with bug patches and minor enhancements.
  • release-- the release date in YYYY-MM-DD form. This date corresponds to AST package and git repository releases.
KSH_VERSION in a numeric context is an integer that encodes the release YYYYMMDD.
What new features are planned for ksh?
We are in the early stage of planning but the likely additions are namespaces, ability to read XML and JSON object into shell variables, and handling of queued signals. Support for multi-threading is also being considered.
Is KornShell public domain?
Yes, the language description is public domain and can be reimplemented. Some of the KornShell language features have been reimplemented in the GNU shell, bash, in zsh and mksh, and in pdksh, a public domain implementation.
Is ksh public domain?
No, earlier versions were owned by both AT&T and Novell. The 1993 version is owned by both Lucent and AT&T.
Is source code available?
Starting in March 2000, the ksh93 source is available as part of a larger collection of software called the ast-open software package which can be downloaded from the github page.
What are the licensing t