Almquist Shell
Almquist Shell is a minimal implementation of an almost-POSIX shell, and also a replacement for Bourne Shell. Almquist Shell has more features than Bourne Shell, but fewer features than most other shells. (No arrays!) Almquist Shell only implements POSIX features, plus a few BSD traditions, like local
variables in functions. Almquist Shell is the default shell, /bin/sh
, of some systems. However, it does not have any of the internationalization/localization or multi-byte character encoding support required by the POSIX standard, so it is not a POSIX-compliant shell.
If a script works with Almquist Shell, it will probably also work with bash, pdksh and zsh. Further, it will probably work with ksh93 unless it uses local
, which ksh93 lacks.
Almquist Shell filled the need for a free shell to replace Bourne Shell. Kenneth Almquist posted the first version of Ash to Usenet group comp.sources.unix at 30 May 1989. It was a clone of SVR3 Bourne Shell. BSD used Ash for /bin/sh
, added features from POSIX, and put a Berkeley copyright on this shell.
Almquist variants
Ash has three major variants:
- Debian Almquist Shell (Dash), which adds support for `echo -n` and `test -a`/`-o`
- FreeBSD /bin/sh
- NetBSD /bin/sh
All three variants have similar features. Dash can run on GNU/Linux.
Ash is also the shell provided by BusyBox.
See also
- Almquist shell, Wikipedia's article
- Ash (Almquist Shell) Variants, a history of many Ash versions and their features