- 16-09-2019
- added links to source web interface, mentioned archive mirror list
- 29-09-2016
- sections restructured, TOC added
- 18-09-2016
- fixed broken links to old pages of DMR and the old THUS archive
- 18-08-2016
- Schily release 2016-08-08 implements a strict posix mode
- 26-06-2016
- SVR2 cornercase bug: "
break 0
" in a one-fold loop renders an interactive shell dysfunctional. Fixed in Schily release 2016-06-20. Thanks to Jörg Schilling.
- 25-05-2016
- Recent Schily variants implement
$()
and $(())
, and now aims at posix coformance.
- 07-04-2016, 09-04-2016
- Subpage "common properties": the item about local copies of environment variables
(behaviour before export has been used) could be improved a lot thanks
to suggestions from Bela Lubkin!
- 21-03-2016
- description in common.html about local copies of
environment variables has been improved a lot.
Thanks to Bela Lubkin for pointing this out.
22.03: fixed unbalanced quotes.
- 05/06-08-2015, 16-11-2015
- links to Schily variant updated
- 15-07-2015
- 27-01-2015
- origins: Louis Pouzin introduced a "shell" concept to Multics. Thanks to Konrad Schwarz for pointing this out.
- 03-05-2014:
- updated Schily sh variant
- 18-04-2012:
- "echo -n" as possible post-SVR4.0 criteria for IRIX 5/6 removed (not significant)
- mention Jörg Schillings schily tool box in end note
- 23-03-2012:
- Not the schily port, but earlier Schilix was published first
- 25-11-2011:
- SVR4.0 v2.1 has the colon redirection bug fixed, but not the earlier OSF/1 variant
- exec redirection bug still present in many (probably all) SVR4.x shells
- 14-08-2011:
- mention inactive code for
$FILEMATCH
which was removed with SVR2
- 08-08-2011:
- SunOS 5.3: bugfix:
getopts
in connection with function might loop
- fix about trap and foreground process was not for SunOS 5.6 but SunOS 5.5.1
- 17/18/19/20-07-2011:
- IRIX 5/6 knows both
ulimit
and limit/unlimit
- IRIX 5/6 handles empty
MAILCHECK
at start
- IRIX 5/6 doesn't implement BSD built-in compatibility from SVR4
- two Reliant items merged
- SunOS 5 warns for stopped jobs also upon "
exit
" (not only upon EOF
)
- EP/IX
test
implements -L
- EP/IX
kill
doesn't accept a signal in connection with a job id
- added IRIS 3.7
- SVR4.2: mldmode/priv and TIMEOUT implemented from start
- SVR4.2: link to UW7 manual page
- SVR4.2: job control is off in sub-shells
- SVR4.2: with the flag "a", read now exports variables
- SVR4.2: multibyte support, localized messages, inspects also
CHRCLASS
,
tracks LANG
and LC_MESSAGES
at run time
- 14-01-2011:
- incorporate csh-hack page from #! page, and add a page with
the corresponding code in csh
- 11-01-2011:
-
O_APPEND
issue in common characteristics:
mention place in source.
- ... and refine "old ksh" to "ksh86" and mention place in source, too
- 07-01-2011:
- added 4.3BSD-Tahoe and -Reno (previously overlooked their changes)
- mention FreeBSD v7sh port
- 06-01-2011:
- Dynix ucb variant: use csh-hack only in ucb universe
- Dynix ucb variant: fixes for
continue n
and break n
- Dynix ucb variant:
set -e
disables while executing an if/while/until
condition
- OSF/1: improve error message (use original
argv[0]
) if executing a file fails
- IRIX: knows message
"POSIX shell builtin - cannot execute"
,
in case a command in /sbin would be called, which represents a POSIX shell (only) built-in.
- 04-01-2011:
- updates for heirloom sh
- mention different prefix for temp-files ("/tmp/sh" instead of "/tmp/sh-") on OSF/1
- add changes about
newgrp
and login
built-in
- mention built-in default paths where they differ from the usual path
- add manual for the Thompson shell on the 1st edition Unix
- 02-01-2011:
- 31-12-2010:
- added Dynix 3.2.0 (ucb and att variants)
- added Dynix PTX 1.2.0
- 07-11-2010:
- TIMEOUT mechanism: distinuish between early hardcoded and later environment variable mechanism
- and fixed item about Ultrix sh variant (concerning TIMEOUT): not activated but deactivated
- 01-11-2010:
- add manual page of Ultrix sh5 (representing SVR2)
- 17-10-2010:
- set -:
Add remarks about using
set
with a dummy and shifting it away.
- 13-09-2010:
- common characteristics:
link explanation from D.Korn about special built-ins
and link autoconf chapter about portable shell programming.
- 01-09-2010:
- IRIX 5 ff.: don't inherit
IFS
if running setuid/gid or as root
- IRIX 5 ff.: don't set euid back to uid (flag
-p
and euid < 100)
- SVR4.2:
test
knows -L
- SVR4.2: UnixWare 1 didn't know
read -r
yet
- 30-08-2010:
- common characteristics:
"
for i in var=value x; do
" only loops over x (parses the first argument like an assignment).
- 03-08-2010:
- 09-05-2010:
- 18-04-2010:
- fixed wrong pointer to TUHS discussion about ^ being equivalent to | (thanks to Meillo)
- 24-03-2010:
- explain internal limit related to the
hash
built-in
on a separate page
- 28-01-2010:
- 20-01-2010:
- the Bourne shell made scripts as part of a pipeline available
- move PWB footnote downwards to other footnotes
- add a 2nd example to 4th footnote of 7th ed shell (subtle 8bit bugs)
- 05-01-2010:
- 29-11-2009:
- 19-08-2009:
- 06-08-2009:
- 21-07-2009:
- 05-05-2009:
- added link to interview with S.Bourne in the australian Computerworld
- 12-02-2009:
- SVR1:
bug: set -e doesn't affect commands on the same line ("set -e; false"). SunOS 5.5 fixes this.
- 08-02-2009:
-
characteristical common properties: since SVR2, when hashing was implemented,
PATH may not contain more than 255 elements.
wording of the headings improved on this occasion.
- 10-01-2009:
- add link to DMR's V1 Thomson shell manual
- 01-01-2009:
- Ultrix sh5 becomes a separate item with some more details
- not among
characteristical common properties: test operators -a and -o always test both conditions
- 04-01-2009: ...and: earlier Almquist shells also don't accept
a leading paren in "case x in (x)"
- 30-11-2008:
- Ultrix becomes a separate item and much more detailed
- SVR2: bugfix for continue and break
- SVR1: bugfix about checking traps when exiting
- 29-11-2008:
- not among
characteristical common properties:
test exits with 1 on error (instead of 2) also in some other shells
- SVR2: a race condition remains for a command substitution
containing a here-document being left part of a pipeline.
Add this also to "characteristical common properties".
- SunOS 5.5 bugfix for the above race condition
- 26-12-2008:
- SVR1: SIGFAIL changed from 03 to 02000 (decimal 208)
- SVR1: when regularly checking for untrapped signals to exit upon, do not use SIGFAIL only,
but the internally safed exit status, if available
- SVR1: the flag 'e' is not passed on to forked child scripts anymore
- SunOS 5.6 bug: `(...)` locks up the shell
if the last cmd in the subshell is a built-in
- SunOS 5.7 bugfix: sh -n ran loops forever before
-
characteristical common properties:
more examples for fatal errors of built-ins
- 21-12-2008:
- link to Hellwig Geisse's page about emulation of V7
- and it's possible to compile early System V shells on a System III emulation
- mention that ^ as synonmy for | was probably inherited
from the Thompson shell for reasons of convenience on upper case terminals
- 14-12-2008:
- SunOS 5.10 only does locale processing if /usr is mounted
- emphasize variant names and the important changes (arbitrarily chosen) with bold face
- 06-12-2008:
- EP/IX2.2.1 from between SVR4 and SVR4.2: colon-redirect-in-loop bug fixed
- 27-11-2008:
-
characteristical common properties:
mention workaround for built-ins failing.
Move item command substitution to top.
Mention portable shorter variant for exporting variables.
link Almquist shells where referred to
- 4.3BSD: fix "only does import IFS if euid=0..." to
"IFS not imported if uid=0..."
- 23-11-2008:
- ephasize the more important changes (subjectively chosen) with boldface
- fixed ambiguous wording about character classes
- SunOS 3 becomes separate item (due to number of differences to SVR2)
- SunOS 3 and SunOS 4:
shell tries to check for binary before interpreting a script
- "
cd
" system error messages introduced with SVR3,
not vendor specific (adjusted: SunOS4, AIX3, DG/UX4)
- 16-11-2008:
- 03-10-2008:
- Version 8: the pattern
*
matches all files (but . and ..)
- 01-10-2008:
- 4.3BSD: IFS only imported if running under root or suid
- BSDs more readable reformatted
- 24-08-2008:
- cannot reproduce bugfix about -e on SVR1, item removed
- 23-08-2008:
- System III: item "bugfix echo */" : improved bad wording "files" to "filenames"
- not SVR2 but System III: bugfix "continue n" to jump to outer loops works
- System III also brought a change about
the exit status of a pipeline:
the precedence changed
- 19-08-2008:
- not SysIII but SVR2: "bugfix: not discarding empty arguments when expanding
"$@"
"
(not to confuse with the later, modern "$@"
)
- not SVR1 but SVR2: "bugfix: here-documents work in connection with asynchronous commands"
- 14-08-2008:
- Heirloom variant added
- more detailed release numbers and some corrections for BSDs
- Schily variant added
- common characteristics: update to "assignments preceding builtins": POSIX behaviour in some other shells
- 15-04-2008:
- The comparison Bourne/Thompson/PWB wronlgy denied the PWB (aka Mashey) shell several
features which it provided intentionally (e.g. if/switch/while built-in, usability as filter)
- 25-11-2007:
- added SCO OpenServer 6.0.0 (Thanks to Rodolfo Martín for access)
- 26-10-2007:
- 08-10-2007:
- Sun fixed inheritance of IFS not with 5.4 but 5.7
- 21-09-2007:
- mention the unused V7 version string
- table of contents: mention ultrix and sunos 2
- 19-08-2007:
- SVR4 unconfirmed bug removed
(redirecting with exec in loop works only once)
- SVR4 introduced a bug: inside a loop,
redirection after the colon command works only the first time
- 20-11-2006:
- EP/IX additional flags fully documented and
documentation about flag I completed
- 12-02-2006:
- footnote about date to Korn's article
- 12-02-2006:
- Jeffrey A. Neitzel meanwhile also provides a
port of the
original code of the Thompson shell.
- 19-01-2006:
- Various fixes concerning invalid HTML and typos,
pointed out by Stefan Kanthak.
- 13-01-2006:
- SunOS 5.9:
when creating a temporary file,
the shell doesn't follow an already existing unresolved
symbolic link anymore
- 29-12-2005:
- 10-12-2005:
- 09-11-2005:
- 07-11-2005:
- 23-10-2005:
- added undocumented flags to EP/IX
- 14-09-2005:
- 08-07-2005:
- 18-06-2005:
- Gunnar Ritter publishes a
source port of the OpenSolaris shell.
This is the first time, that the traditional Bourne shell is
officially available on free unix flavours!
- SunOS 5.9
"test"
knows
flag L as alias for h
- 08-06-2005:
- SunOS 5
"test"
can mimic
BSD-like behaviour for the flag f
- 10-05-2005:
- 08-05-2005:
- SVR3:
read
knows "missing arguments"
- SunOS 4: built-ins behave SysV-like
depending on /usr/5bin in
PATH
- SunOS 4: meta notation in diagnostics,
if 8bit characters are considered unprintable
- SunOS 3 and 4: "
test: too many arguments
"
- Some variants have the
type
output for functions with case statement fixed
- OSF1: "
cd: too many arguments
"
- 22-04-2005:
- 02-04-2005:
- 27-03-2005:
- pipeline exit status handling changed in
SVR2
- DG/UX becomes extra item
- 24-03-2005:
- converted endnotes to footnotes
- 10-02-2005:
- V7 sh in comparison with Thomson/Mashey shell.
- 07-02-2005:
- 09-04-2004:
- "priv, mldmode, umask -S: between UnixWare 1 and 2.1
(SVR4.2MP, 1995)
- 10-11-2003:
- Link added to Geoff Collyer's V7 sh compiling on POSIX systems.
- 09-07-2003:
- "
type
" returns false on "[...] not found
"
at least on OSF1, AIX 3, SunOS 5, IRIX 5 and UnixWare/OpenUnix8.
- 20-03-2003:
- System III:
when expanding
"$@"
(or ${1+"$@"}
),
empty arguments are not discarded anymore (not to confuse with
modern "$@")
- 04-03-2003:
-
IFS='\'
splitting bug introduced in
SVR3.
Fixed on AIX.
- 03-2003:
- site moves from
www.uni-ulm.de/~s_smasch/
to www.in-ulm.de/mascheck/
- 01-03-2003:
- At least OSF1/V4, HP-UX 10 and AIX 3 are
fixed about the shell
internal quoting mechanism for parameter substitution inside
here-document inside command substitution inside doublequotes.
- 24-01-2003:
- Links to comments on the invention of the old and new
pipe characters,
added next to the V3 and V4 manuals.
- 20-12-2002:
- Due to job control, SVR4
checks for signals also after a <newline>.
- 17-12-2002:
- 16-12-2002:
- 10-12-2002:
- SVR3 introduces a bug in the
parameter expansion. Fixed in AIX.
- 04-12-2002:
- 03-12-2002:
- 01-12-2002:
- SVR3: The trailing-colon-fix
doesn't apply to CDPATH but only to PATH.
- AIX: The behaviour about a trailing colon
in PATH is reintroduced/not fixed
- The "
cat<<`...`
" bugfix is not SVR4 generic
but vendors fixed this idividually
(AIX, OpenServer, SunOS 5 and also OSF1). Except for Solaris,
the backticks are not interpreted.
- 30-11-2002:
- mention changes to "
test
" built-ins
(all over the place, after the introduction of the built-in
on System III).
- SunOS 4:
chdir was not re-introduced until 4.1
- SCO Unix 3.2 v4.0:
error message for "fd 19" bugfix mentioned
- SCO Unix 3.2 v4.2:
localization mentioned
- spellchecking for "
cd
" not introduced with
SCO Unix 3.2 v4.0 but with v4.2
- cat<<`...` bugfix
probably not SVR4 generic
- SunOS 5
is made an extra item
- ~ 09-2002:
- SystemIII: fork checking, exit leaves interactive sh,
- SVR2: continue n, readonly bugfix, bg jobs niced, cmd subst bugfix
- SVR3: restricted bugfix, trainling colon fix,
- added SunOS4 variant
- added OpenServer variant
- SVR4: fixed <<`..`, fixed r flag, several SunOS5 fixes
- SVR4.2: umask -S
- ~ 08-2002:
-
each variant extensively reinspected
- added System III, Version 8, IRIX 3/4, AIX 3, ReliantUnix
- common characteristics
- articles from Korn and Mashey
- ~ 01-2002:
- each variant slightly more detailed
- ~ 10-2001: