Junio C Hamano [off-list ref] writes:
Asgeir Storesund Nilsen [off-list ref] writes:
quoted
I absolutely agree on the idea of using pure POSIX, but in reality I guess
most of both developer and user base are using (GNU/)Linux and thus an
environment where /bin/sh is in fact Bash?
The various BSDs have shells that are not bash, but which are believed
to be fully POSIX-compliant. Putting #!/bin/bash in scripts is
nonportable and just creates work for packagers to undo this.
For example, dash is a much lighter alternative than bash, and groks POSIX
fine.
I believe that some GNU/Linux distributions have a /bin/sh that is not
bash. Plus there is the /bin/sh on BSD, which is vastly smaller even if
one counts libedit:
text data bss dec hex filename
109602 1192 5836 116630 1c796 /bin/sh
text data bss dec hex filename
96523 4248 7488 108259 1a6e3 /lib/libedit.so.2.11
text data bss dec hex filename
716381 18328 11880 746589 b645d /usr/pkg/bin/bash
I think a safer assumption is that /bin/sh is POSIX, and we make sure that
the builder can countermand it with SHELL_PATH; as platforms whose /bin/sh
is _not_ POSIX does not have to have bash as /bin/bash but somewhere else
(e.g. /usr/local/bin/bash).
Agreed. The current sources work well on NetBSD w.r.t. sh usage.