ARG_MAX
| Shells
| whatshell
| portability
| permissions
| UUOC
| ancient
| -
| ../Various
| HOME
$@
"
| echo/printf
| set -e
| test
| tty defs
| tty chars
| $()
vs )
| IFS
| using siginfo
| nanosleep
| line charset
| locale
The point of a standard isn't even whether it's ideal or particularly sensible,
it's that a compliant program produces consistent results on compliant platforms.
Diverging in the name of whatever benefit just means that one has to work harder
to produce a portable program. -- Richard L. Hamilton, in comp.unix.questions
2024-06-16 (see recent changes)
This is a link list. Well, there's one page of my own (bourne shell characteristics), but after all that one is not about portability...
Shell and Utilities are covered particularly by these volumes: SUS XCU / POSIX.2 / IEEE 1003.2
Understanding of the "Base Definitions" is assumed for understanding "Shell and Utilities".
(From the FAQ (broken link, see XBD instead):
"readers should be familiar with it before using the other parts,
[...] reduces duplication [...] and ensures consistent use of terminology.")
The "XSI" option describes extensions which are required on UNIX implementations.
See also "Utilities" for the built-ins which are not special.
Deep links mostly seem to work. However, please register online at the OpenGroup, if you access their documents. Andrew Josey (OpenGroup) explains why:
"We do prefer folks to register to access the specification if they can,
so we can track interest in the specification -- which then helps us to
justify making it available."
some news:
SUS and POSIX have been merged with this release.
2004 includes two technical corrigenda
Also try "Commands and Utilities, Issue 4, Version 2" via Base 95
See packages notes and changes,
and a current ksh93 package on
www.research.att.com/sw/download/
for the following files.
The naming is confusing at first, here's what they mean:
In Usenet, you can even find an archived version of the changelog for ksh88, RELEASEa (local copy).
bash knows a POSIX mode. But keep in mind, that it only switches behaviour where bash features would collide. Apart from that, bash specific features are not affected.
The Linux distribution Ubuntu has switched to dash as system shell with release 6.10.
https://wiki.ubuntu.com/DashAsBinSh
lists issues about the migration from bash to dash.
The release goals for the Debian distribution Lenny also picked up this plan, but the
move was postponed.
"mostly finished to make it fully compatible with both POSIX
and AT&T ksh (when the two don't conflict)"
Interesting files are
NOTES ("lists of known bugs in pdksh, at&t ksh, and posix"),
PROJECTS ("Things to be done in pdksh") and the two logs
ChangeLog and
ChangeLog.0.
At the time of this writing, pdksh isn't actively maintained anymore.
This pdksh based shell aims directly at Debian policy compliance, that is, SUS with an exception for echo -n. Numerous features have been removed (e.g. type, ulimit, time, job control builtins, some XSI kill and test extensions, rsh-functionality, aliases, some shell options). So this shell is probably the implementation which is nearest to "POSIX only, and without XSI".
This project calls itself a heir of pdksh and could be considered a continuation of pdksh maintenance.
<http://www.in-ulm.de/~mascheck/various/portability/>