From: Jeff King Date: Sun, 08 Apr 2012 04:48:25 GMT Subject: Re: [PATCH 01/12] tests: add initial bash completion tests Message-ID: <20120408044825.GA4296@sigill.intra.peff.net> In-Reply-To: <7vpqbiyhmu.fsf@alter.siamese.dyndns.org> On Sat, Apr 07, 2012 at 09:25:29PM -0700, Junio C Hamano wrote: > Bash has a special case code to behave in a "posixly correct" mode, where > a lot of extensions are disabled, when invoked as "sh". Unfortunately, it > still defines BASH_* variables, including BASH, when operating in this > mode. > [...] > So we may want to be a bit more careful like this: > > if test "z${BASH%/bash}" != "z${BASH}" > then > : ends with bash so we are already running bash as bash If bash is in posix mode (including "bash --posix" and being invoked as "bin/sh"), it will set POSIXLY_CORRECT (but not export it). Similarly, if POSIXLY_CORRECT is set in the outer environment, it will act more like sh. So maybe that would be a better test. -Peff