BASH

BASH is well-known as Bourne Again Shell. It's a language specifically re-written by Brian Fox due to lack of progress from Stephen Bourne, dissatisfied by Richard Stallman back in 1988. Since its birth, BASH took over the Unix and Linux world due to its programming language like and (a lot) of new features such as arithmetic calculation, simplifies I/O redirection, etc.

In short, BASH is a super-set of Bourne Shell, upgraded with a new list of features.


POSIX Compliance

BASH is conformed to POSIX Compliance. However, the extended features are not.

That means if your bash script is written using the BASH extended feature, it is not POSIX compliant since most shell terminal do not support these features.


Decide BASH or POSIX

The guide for BASH here is strictly non-POSIX compliant and we only considers the BASH version. Therefore, we are going to use BASH extended features like a programming language. If you have a requirement specifically saying:

  • POSIX compliant
  • work across different UNIX system

Then you should STOP using BASH and digging this rabbit hole! Use POSIX Compliant Shell Script instead.


What to Go Next

Once you're ready, use the navigation bar to select the sub-topics.