[BusyBox] Ash *surprises*

David Douthitt ssrat at mailbag.com
Fri Aug 10 08:02:58 MDT 2001


I replaced a modified standalone ash with busybox ash; it was worth it. 
However, it created quite a few problems, and many surprises.  There's a
few bugs, too.

Here's a list (with comparisons)

1. read -p silently ignored (previously worked)
2. getopts removed; does not exist in busybox ash
3. echo removed and now external
4. test removed and now external
5. sh -x does not work
6. IFS="," ; set -- $FOO ...where FOO="a, b, c, d" acts differently:
   ash:    returns: $1=a $2=b $3=c $4=d
   bb ash: returns: $1=" a" $2=" b" $3=" c" $4=" d"
   ...setting IFS to ", " restores the desired behavior.

There's also at least one bug:

1. . .profile fails with file not found; . ./.profile does not (!)

One of the problems I had with echo and test being external was that I
set PATH=/bin:/sbin at one point; however, echo and test are in
/usr/bin; thus all of echo and [ failed miserably.

Despite failing the "principle of least surprise" this switch has been
of GREAT benefit to my distribution; it's meant being able to split GNU
libc to a separate archive, which means the switch to a new GNU glibc
only requires a new archive, AND it shrunk the main root filesystem
archive by almost 500k!

Thank you very much for your work on busybox, ash, tinylogin, and uClibc
- I now use 'em all :-)





More information about the busybox mailing list