33.9. Portability Issues
This book deals specifically with Bash scripting on
a GNU/Linux system. All the same, users of sh
and ksh will find much of value here.
As it happens, many of the various shells and scripting
languages seem to be converging toward the POSIX 1003.2
standard. Invoking Bash with the --posix
option or inserting a set -o posix at the
head of a script causes Bash to conform very closely to this
standard. Another alternative is to use a
header in the script, rather than
Note that
/bin/sh is a
link to
/bin/bash
in Linux and certain other flavors of UNIX, and a script invoked
this way disables extended Bash functionality.
Most Bash scripts will run as-is under
ksh, and vice-versa, since Chet Ramey has
been busily porting ksh features to the
latest versions of Bash.
On a commercial UNIX machine, scripts using GNU-specific
features of standard commands may not work. This has become less
of a problem in the last few years, as the GNU utilities have
pretty much displaced their proprietary
counterparts even on "big-iron" UNIX.
Caldera's
release of the source to many of the original UNIX
utilities has accelerated the trend.
Bash has certain features that the traditional Bourne shell
lacks. Among these are:
See the Bash
F.A.Q. for a complete listing.