On Thu, Jul 20, 2017 at 6:01 PM, Cameron Simpson <cs(a)zip.com.au> wrote:
On 20Jul2017 13:41, Joe Zeff <joe(a)zeff.us> wrote:
> On 07/20/2017 05:31 AM, George N. White III wrote:
>>
>> Rigid adherence to a standard is often overkill. Bashisms have been
>> a practical problem for systems that use dash for /bin/sh.
>
> My understanding is that when bash is invoked as sh, it acts exactly
> as sh itself would, so that only those builtin commands that are in
> sh are available. Judging by what you write, this seems not to be the
> case any more.
My recollection was that bash went POSIXly when invoked as /bin/sh,
_with some small exceptions_. I think it's been only-mostly-correct
for a long time; it was a long time ago when I read the caveat.
I've never checked thoroughly, but I imagine it has to do with parser
issues and low level things like that. For example, a longstanding
pain point for me is that bash requires function names to the
identifiers rather than just words. In a script my function names are
identifiers, but interactively I've got a bunch of nonidentifier
preferably-functions which are special cased as aliases or the like in
bash. (I invoke my mail reader as "+", for example.)
https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html