Recent changes on "www.in-ulm.de/~mascheck/various/ash/
"
- 13-02-2021:
- VMWare ESX 6.7.0 has busybox 1.x as system shell
- 11-10-2014:
- explicitly mention that ash accepts "
{ ...; }
" as body
in a "for
" loop like many other shells (undocumented).
Not only that dash threw this out.
- 11-05-2014:
-
"local -"
(make $-
local in functions) apparently is the second characteristic feature of ash, thanks to Jilles Tjoelker
- added some fixes on FreeBSD 9.0, thanks to Jilles Tjoelker
- 11-05-2014: improved picture concerning android
- 12-04-2014:
- 28-04-2012:
- 06-12-2011:
- The Slackware 8.1 ff variant is not a dash 0.4.0, but similar to a dash-0.3.7-14 (explain and adjust picture)
- mention next changes around the dash release when slackware was forked
- 13-11-2011:
- debian, net- and freebsd implement
<>
at about '99/'00
- 12-07-2011:
- writing of some busybox items improved
- 10-05-2011:
- busybox has a compile time option for some bash compatibility features
- 05-05-2011:
- original ash didn't know ${10}, and NetBSD 1.2 ff. parses $10 like ${10}
- 15-01-2011:
- mention when built-ins jobid, lc, setvar and exp/let where rmoved
- 18-09-2010:
- cygwin added, diagram updated
- 11-09-2010:
- mention when case x in (x) was accepted in some releases
- 05-09-2010:
- mention old-fashioned features in early linux port
- emphasize on linux port ash-0.2 being different from versioning of original ash
- 23-08-2010:
- correction: 4.3-BSD-Net/2 accepts flag v but doesn't implement it (instead of handles it like flag x).
fixed on 4.4BSDalpha
- consequently mention flags with a dash, that is, "flag -x" instead of "flag x"
- 10-08-2010:
- added an example for differences which are not listed in DIFFERENCES
- 25-07-2010:
- switching to dash as system-shell is one of the release goals of Debian "Squeeze".
- 21-02-2010:
- mention when "test" became a built-in on Net- and FreeBSD
(and when had been imported to the system from pdksh before)
- 31-01-2010:
- early slackware variant not separated anymore
- 25-01-2010:
- interlaced dash section with debian releases; mention last Debian release "Bo" with early ash-0.2
- added synch with netbsd to 4.4bsd-lite2 (section and illustration)
- 11-01-2010:
- remove stray "
for i<newline> in...
not accepted" from differences of original variant to SVR4 shell
- family tree picture updated
- Slackware section restructured, source repositories linked, and numbering changed from 8.1 to 9
- dash: NetBSD-sync dates added
- 10-01-2010:
- 4.4BSD-Alpha fixes "
$( )
" bug
- 4.4BSD-Lite fixes "
${var=`cmd`}
" bug
- 07-01-2010:
- 05-01-2010:
- renamed "386bsd cluster patch" to "patchkit 2.4"
- 30-12-2009:
- added a picture of the family tree
- more exact dates for 4.4BSD-*
- 07-12-2009:
- dash has cmd line history/editing disabled at compile time by default; mention how to compile in
- mention also eventual descendance for some variants (early slackware variants, e.g.,
are derived from ash-linux-0.2, i.e., early NetBSD, i.e. 4.3BSD-Net/2)
- 14-10-2009:
- improve time(-range) informations in section headings
- 05+06-09-2009:
- start including facts about availability of extended character classes in dash
- 22-02-2009:
- different from SVR4 shell:
"for i<newline> in ...; do
" (special wrapping) is not accepted
- 16-02-2009:
- add years also to section titles
- 386BSD sh(1) is identical to 4.3BSD-Net/2
- NetBSD 3.1/4.0, FreeBSD 5.2 and dash-0.5.5.1 accept variable names without dollar in arithmetic substitution
- 31-01-2009:
- improve wordings, emphasis and ordering for original release
- 386BSD: mention changes of cluster patch
- move job control patch note from 4.3BSD to original release
- 24-01-2009:
- switching to dash as /bin/sh is a release goal for Debian Lenny
- 09-01-2009:
- provide manual pages for all 4*BSD releases
- 05-01-2009:
- make original manual page available
(the versions on freebsd.org were processed with later nroffs and have two little errors)
- collect the various "case x in (x)" changes in the corresponding footnote for the original ash
- link job control patch to original source
- 03-01-2009:
- more details about the ancestry of the FreeBSD variant
- swap order of FreeBSD and early Linux port, makes more sense
- mention change to dash as system shell in Ubuntu 6.10
- 31-12-2008:
- 4.4BSD-Lite2 removes printf built-in
- printf added to NetBSD 2.0
- printf added to dash 0.3.8-1
- dash 0.3.5-7: echo option "-e" removed
- BSD/OS 3.0 has no printf built-in anymore (resynchronized with 4.4BSD-Lite2)
- 26-12-2008:
- added relative internal links (relationship)
- updated link to minix3 cvs which has moved
- 20-12-2008:
- "notexistent_cmd 2>/dev/null" does not redirect in any variant (except dash since 0.4.7)
- 07-12-2008:
- all ash recognize trailing "
%func
" and "%builtin
"
in PATH components, but since 4.4BSD-alpha this is not documented anymore.
- 01-12-2008:
- 4.4BSD-Lite: explain "read" fix
- 4.4BSD: had forgotten to mention bugfix from 386bsd-cluster-patch about escaping
- 20-10-2008:
- dash-0.3.8-1 removes ancient support for "{ ... }" as body in a for loop
- 08-10-2008:
- Minix 3.1.3 imports new ash from FreBSD 5.4
- 07-10-2008:
- BSD/OS 3.0 accepts "case x in (x)"
- wording of slackware section improved (and date corrected)
- use "BSD/OS" for naming BSDI releases
- 01-10-2008:
- improve wording of unnestable back-ticks: in fact escaping in back-ticks was not possible (until 4.4BSD)
- 17-09-2008:
- another item where the original ash resembles the SVR4 shell:
"set --" doesn't unset the parameter list
- 06-09-2008:
- FreeBSD 4.4 fix "var=x eval echo \$var" unconfirmed yet
- link snapshots of dash changelogs
- 03-09-2008:
- explain addition of read flag -r in some variants: the original ash behaved like that by default
- 19-08-2008:
- BIG-IP4.2 from F5 is BSD/OS 4.1 (= 4.0 for the shell)
- 17-08-2008:
- 16-08-2008:
- original release introduced undocumented support for #! as compile time option (non-BSD systems)
- BSD/OS 4.0 removes (unused) #! support
- 12-08-2008:
- original release knows a version variable
SHELLVERS=ash-0.2
, which is removed in 4.3BSD-Net2
- 11-08-2008:
- 4.4BSD-Lite2 fixes a saved exit status
- 09-08-2008:
- some additions to BSD/OS 4.0
- "case x in in)" was always parsed correctly
- 08-08-2008:
- BSD/OS completely rewritten, all releases (thanks to Peter Seebach for access)
- item 4.4BSD added (from CSRG archive)
- thus, former 4.4BSDlite here is now actually 4.4BSD; actual fixes for 4.4BSD-Lite added
- 4.4BSD-Lite2 removes leading : in default PATH
- 22-04-2008:
- BSD/OS: added 2.0
- swapped order of BSD/OS and FreeBSD (due to timeline)
- 02-04-2008:
- slackware splitted up
- explicitly mention that dash starts as "ash"
- 27-03-2008:
- mentioned slackware variant
- some text splitted up into items for dash and busybox
- 25-03-2008:
- added new item "Early port from NetBSD to Linux ('93)" (Thanks to Oleg Verych for pointing me to it)
- 28-10-2007:
- FreeBSD2.2.5 added type built-in
- 22-10-2007:
- NetBSD 4 accepts "case x in (x)"
- modern behaviour about IFS vs. "$*" for NetBSD 1.3 and FreeBSD 3.1
- incorporation of ash to busybox more detailed
- ${x-a b c} issue backed out
- 04-09-2007:
- numerous fixes for BSD/OS
- examined 4.1BSD/OS, not 4.2
- probably derived from NetBSD 1.2, not 4.4BSD-Lite
- origin of tokenizer.c SCCS-ID unknown
- NetBSD 1.0: true built-in added
- 25-07-2007:
- original implementation introduced echo -e without documenting it.
- on the BSDs, echo -e isn't activated per default anymore like in
the original distribution.
- 07-06-2007:
- mention: minix also lacks type built-in
- 12-11-2006:
- "expr" is a built-in in the original ash
- 08-11-2006:
- busybox optional built-ins more detailed
- 04-11-2006:
- NetBSD, FreeBSD and minix updated concerning "-c cmd arg0 arg1"
- 01-03-2006:
- minix:
- accepts empty command
- "false" added
- job control disabled
- Command line editing and history by readline()
- doesn't read a file after exec() failed (hence #! is required)
- 28-02-2006:
- ash starts aiming at POSIX.2 with 4.4BSD-Alpha
- and its manual is rewritten
- 27-02-2006:
- original ash
- negation of pattern matching with "!!pattern"
- flag z (don't leave pattern after redirection unchanged if it doesn't match)
- 4.3BSD-Net/2
- "bltin" renamed to "command"
- "catf", "expr", "line", "nlecho" removed
- job control fixed
- user without HOME starts in /tmp
- 4.4BSD-Alpha
- atty support removed
- "printf" added
- negation of pipeline
- /u/logname mechanism removed
- "set -o" prints options
- flag j renamed to m; C, a, b, u added; z removed
- "You have stopped jobs" added
- "can't shift that many" added
- warning "running as root with dot in PATH"
- "!!pattern" removed
- 4.4BSD-Lite
- "wait" has exit status
- "missing history argument" added
- handles empty command like simple commands
- 4.4BSD-Lite2
- only use ENV if IDs equal effective IDs
- source command does path lookup
- PATH assigment preceding a command is regarded for the lookup
- "false" added
- dash can be escaped in range
- empty command not allowed anymore
- Minix
- thus is still missing negation of pipeline
- 20-02-2006:
- dash: mention, that it's not a native debian package anymore
- behaviour about "case x in (x)" is almost a characteristic
feature of early variants.
- 15-02-2006:
- BSD/OS: no "type" built-in
- 05..14-02-2006: