ksh (Korn-Shell) ist eine Unix-Shell von David Korn bei den AT&T Bell Laboratories, vorgestellt 1983. Sie vereint die Stärken der Bourne-Shell mit Komfort-Features der C-Shell und ist weitgehend POSIX-kompatibel. Die wichtigste Variante ist ksh93, die bis etwa 2012 von Korn und Glenn Fowler weiterentwickelt wurde.
Erste Schritte
ksh -c 'print "Hallo Welt"'
history
alias ll='ls -l'
typeset -i zahl=5
Kernkonzepte
- print: Ausgabe (Alternative zu echo)
- typeset: Variablen und Attribute setzen (z. B.
typeset -ifür Integer-Arithmetik) - [[ ]]: erweiterte Bedingungen mit Mustergleich
- (( )): arithmetische Ausdrücke, z. B.
(( sum = a + b )) - select: interaktive Auswahlmenüs in Skripten
- function: Funktionen definieren, whence: Befehlspfad ermitteln
- Coprozesse:
|&für bidirektionale Kommunikation mit Hintergrundprozessen
Kommandozeilen-Editing
ksh bringt von Haus aus bearbeitbare History mit — im vi- oder emacs-Modus (set -o vi bzw. set -o emacs). Das war Mitte der 1980er Jahre ein Alleinstellungsmerkmal.
Praxis
ksh war lange die Standard-Login-Shell auf AIX und Solaris und ist bis heute POSIX-konforme Wahl für robuste Administrations-Skripte. Wer eine modernere, komfortablere interaktive Shell sucht, findet sie in der Bash oder Zsh. Die Verwandtschaft zeigt sich auch bei csh und tcsh — sie stammen aus derselben Shell-Epoche.