Often I will see scripts begin with a shebang line that uses
#!/usr/bin/env interpreter_name for whatever interpreter, with the rationale that different systems might have the interpreter that they need in order to run installed in different places. For instance, if I assume
python is installed as
/usr/bin/python then some user who decided to install it as
/opt/python for some reason won't be able to use it as easily.
But the obvious question is, is there any guarantee that
env will be installed at
/usr/bin/env (or for that matter any particular place), or is this just a case of "moving the problem" so to speak?
This slightly related question has a comment that says it's a bad idea and it's preferable to install it with the actual path of the interpreter and cites the single unix specification but does not really address this question.