And that eliminates the need for having /usr/bin/env in the "expected" place. I like it.
On Mon, 2 May 2005, Bill Davidsen wrote:
-#!/usr/bin/python
+#!/usr/bin/env python
Could you explain why this is necessary or desirable? I looked at what env does, and I am missing the point of duplicating bash normal behaviour regarding definition of per-process environment entries.
It's not about environment.
It's about the fact that many people have things like python in
/usr/local/bin/python, because they compiled it themselves or similar.
Pretty much the only path you can _really_ depend on for #! stuff is /bin/sh.
Any system that doesn't have /bin/sh is so fucked up that it's not worth
worrying about. Anything else can be in /bin, /usr/bin or /usr/local/bin
(and sometimes other strange places).
That said, I think the /usr/bin/env trick is stupid too. It may be more portable for various Linux distributions, but if you want _true_ portability, you use /bin/sh, and you do something like
#!/bin/sh
exec perl perlscript.pl "$@"
instead.
Linus