On 01/16/2011 14:37, John Cowan wrote:
Sven Mascheck scripsit:
With /bin/sh you actually meant any shell calling
"itself"?
Otherwise I'm afraid, I have some difficulties following you.
I mean that
whereas (t)csh uses /bin/sh to run scripts with no
shebangs, the Posix-compatible shells execute scripts with no
shebangs directly. And this is Bad.
The alternatives are worse.
On a sysIII system, you had the situation where scripts would be
executed by whatever your shell. So if you put a script on the system,
you had to make sure everybody used csh and write it in csh, or you had
to make sure nobody did and write it in /bin/sh.
The current situation says that 'you must opt-in' to a different shell,
which leads to more predictable behavior.
Later, #! processing moved into the kernel so that interpreters would
execute things directly.
To cope with that confusing mess, the perl env hack was born so that the
perl scripts could execute anywhere, independent of the shell driving it.
Warner