Heirloom Bourne Shell is a Unix shell that is portable and based on the traditional model, available for various platforms.
One of the prominent features that stand out is script portability testing. Despite the Bourne shell not being POSIX-conforming, it remains the father of all Unix shell scripting languages. Nonetheless, with the Heirloom Bourne Shell, most scripts that run in it will run with any Unix shell that is still in use in the twenty-first century. It is relatively easy to write shell scripts that are both POSIX-conforming and usable with the Bourne shell.
Furthermore, Heirloom Bourne Shell offers processing of legacy scripts. Some historical scripts did use language features proprietary to the Bourne shell, and converting them to portable shell language would be challenging. This software offers an alternative to running those legacy scripts using a Bourne shell.
When it comes to general script processing, the Bourne shell may not provide as many features as newer Unix shells, but it is still a highly usable scripting language. The language of the Bourne shell has been stable for almost two decades now and will remain so with this implementation. This makes the Bourne shell a no-surprises scripting language once the programmer has familiarized themselves with it.
Finally, the Bourne shell offers interactive use. It provides job control if it is invoked as jsh and runs on a terminal. The Bourne shell is devoid of fancy features such as a command history, command line completion, etc. However, working without these features tends to make the user more focused on their task. In the long run, using the Bourne shell can lead to a more even-tempered, concentrated working style.
The latest release of Heirloom Bourne Shell presents a few changes. Spell checking for the "cd" command is now optionally available. It can be enabled in the makefile at will. Job control is not re-enabled in interactive subshells within the left sides of pipelines anymore. This previously caused commands like "(cat a; cat b) | cat" to fail with "+ Stopped (tty output)". Additionally, job control now works on FreeBSD. Calls to memcpy() with overlapping source and destination have been replaced by memmove(). The directory "/usr/lib/locale" is no longer required to be present to activate locale processing, and the manual page's "NOTES" section now lists some behavior special to the Bourne shell. Heirloom Bourne Shell has a lot to offer, and it is worth trying it out.
Version 050706: N/A