MirBSD Korn Shell (mksh) is an actively developed successor of pdksh (the Public Domain Korn Shell), aimed at producing a shell good for interactive use, but with primary focus on scripting.
The project is intended to be portable to most *nix-like operating systems as long as they're not too obscure. mksh incorporates improvements from OpenBSD and Debian, as well as bugfixes and enhancements developed for the MirOS and FreeWRT projects. The emacs command line editing mode is UTF-8 capable.
The shell supports large files, as well as all pdksh and some csh, AT&T ksh, and GNU bash features, is compatible with the Bourne shell (within limits, but you can turn off brace expansion), has no limit on array sizes, and incorporates some other useful builtins and features. While being already fast and small (without losing functionality), flags to make it even smaller can be given at compile time. An interactive shell reads "~/.mkshrc" on startup.
Product's homepage
What's New in This Release: [ read full changelog ]
· [tg] New test.sh ‘-f’ option (same as ‘-C fastbox’)
· [tg] Drop using set -o noglob inside pushd/popd/dirs
· [tg] Use += more in dot.mkshrc and keep strings shorter
· [tg] Correct interworking between local and set -A
· [tg] Fix out-of-bounds memory access on strings of 32 KiB length
· [tg] MKSH_DISABLE_DEPRECATED (for integrators)
· [tg, Jilles Tjoelker] test(1) built-in behaves exactly as POSIX says
· [tg] Move compile-time assertions to Build.sh from misc.c#ifdef DEBUG
· [tg] Invocation documentation is at the bottom of Build.sh
· [tg] test.sh: verbosely look for perl(1) interpreter to use
· [tg] New tests for integers (base 1‥36, base unspecified, base OOB)
· [tg] Correct error paths for typeset -n global state
· [tg] Deprecate interpreting "010" as octal number, will go
· [tg] Improvements re. integer handling; more explicit manpage text
· [tg] Do not use caddr_t on Linux, so dietlibc stops bitching
· [tg, Jilles Tjoelker] Catch division/modulo overflow 0x80000000/-1
· [tg] Emacs mode ^O regression fix when the fetched lines are edited