
KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively. KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.
via Wikipedia infobox
KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively. KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.
==Features== KornShell complies with POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.) Major differences between KornShell and the traditional Bourne shell include: job control, command aliasing, and command history designed after the corresponding C shell features; job control was added to the Bourne Shell in 1989 a choice of three command line editing styles based on vi, Emacs, and Gosling Emacs associative arrays and built-in floating-point arithmetic operations (only available in the version of KornShell) dynamic search for functions mathematical functions process substitution and process redirection C-language-like expressions enhanced expression-oriented and loops dynamic extensibility of (dynamically loaded) built-in commands (since ) reference variables hierarchically nested variables variables can have member functions associated with them object-oriented-programming (since ) variables can be objects with member (sub-)variables and member methods object methods are called with the object variable name followed (after a dot character) by the method name special object methods are called on: object initialization or assignment, object abandonment () composition and aggregation is available, as well as a form of inheritance
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).