V6 Thompson Shell Port provides two ports of the original /bin/sh from Sixth Edition (V6) UNIX (circa 1975). osh is an enhanced port of the shell, and sh6 is an unenhanced port of the shell. This project also includes glob6, if, goto, and fd2 as external shell utilities. While they remain external for compatible use by sh6, these utilities are integrated into osh to improve shell performance.
| Tags | Shells Educational |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | Unix POSIX |
| Implementation | C |
Recent releases


Release Notes: This release removes the deprecated $n and $s parameters from osh. It adds filenames and line numbers to diagnostic error messages when possible. Also, it renames the 'sigign' special built-in command to 'trap'. Lastly, it updates the documentation and examples as needed.


Release Notes: This release adds a missing "commandline overflow" diagnostic to osh and sh6, adds a $# parameter (as a synonym for $n) and $? (as synonym for $s), deprecating $n and $s, adds simple shell variables, allowing the user to "set" and "unset" them, changes quoting to allow $ substitution within double (") quotes, adds "." as a synonym for "source" and enables a PATH search when opening the file for each, changes "setenv" to require a value argument, adds new operators to the built-in "if" for osh and the external "if" for sh6, and adds the new operators <, >, -eq, -ne, -gt, -ge, -lt, and -le.


Release Notes: This release changes the osh exit status for alias and unalias so that they exit with a false (1) status when there are no aliases to print, set, or unset. Otherwise, they exit with a true (0) status when there is no error. It adds 'version' as an osh special built-in command, replacing the previous 'version' alias found in examples/dot.oshrc. It changes the _XOPEN_SOURCE definition from 600 to 600L in mkconfig. It also adds DEBUG_ALIAS, DEBUG_GLOB, and DEBUG_PROC definitions (undefined by default) to err.h for printf debugging.


Release Notes: This release adds useful build system info from 'uname -srm' to the built binaries. It updates the included example osh dot files for the sake of simplicity. It also adds handy new 'v' and 'version' aliases.


Release Notes: This release is dedicated to the memory of Dennis M. Ritchie (dmr). It fixes a mkconfig problem on older OpenBSD releases and a globbing problem caused by an unsigned integer overflow. It adds $# (as a synonym for $n) and $* parameters, and a new command aliasing feature that is similar to csh(1) aliasing in some respects. Style changes were made in all of the manual pages, and a new "Aliases (+)" subsection was added to osh.1. The included example osh dot files were updated.