On Jan 7, 2004, at 5:41 pm, Eugene Lee wrote: > : There are annoying differences between "standard Unix" versions of > the > : utilities and their GNU counterparts. Usually they Unix versions are > : compatible with the GNU versions, but the GNU versions are not > : compatible with the Unix versions. ... Just as scripts written for > : /bin/sh will work in /bin/ksh or /bin/bash ... scripts written for > : either ksh or zsh will not run in sh. > > Too bad /bin/bash is the same as /bin/sh. :-) Excuse me if I missed the joke, but from `man bash`: DESCRIPTION Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incor- porates useful features from the Korn and C shells (ksh and csh). ... INVOCATION ... If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well. When invoked as an interac- tive login shell, or a non-interactive shell with the --login option, it first attempts to read and execute commands from /etc/profile and ~/.profile, in that order. The --noprofile option may be used to inhibit this behavior. When invoked as an interactive shell with the name sh, bash looks for the variable ENV, expands its value if it is defined, and uses the expanded value as the name of a file to read and execute. Since a shell invoked as sh does not attempt to read and exe- cute commands from any other startup files, the --rcfile option has no effect. A non-interactive shell invoked with the name sh does not attempt to read any other startup files. When invoked as sh, bash enters posix mode after the startup files are read.