A menudo veré que los scripts comienzan con una línea shebang que se usa #!/usr/bin/env interpreter_name
para cualquier intérprete, con la razón de que los diferentes sistemas pueden tener el intérprete que necesitan para ejecutarse en diferentes lugares. Por ejemplo, si supongo que python
está instalado, /usr/bin/python
entonces algún usuario que decidió instalarlo, /opt/python
por alguna razón, no podrá usarlo tan fácilmente.
Pero la pregunta obvia es, ¿hay alguna garantía de que env
se instalará en /usr/bin/env
(o para el caso en algún lugar en particular), o es solo un caso de "mover el problema" por así decirlo?
Esta pregunta ligeramente relacionada tiene un comentario que dice que es una mala idea y es preferible instalarla con la ruta real del intérprete y cita la especificación de unix único, pero en realidad no aborda esta pregunta.
python
perl
, etc., ahora solo tienes que cazarenv
, entonces el mismo problema, pero un objetivo diferente. Sinenv
embargo, parece que es mucho más fácil de encontrar y, obviamente, mucho más versátil, por lo que sigue siendo muy favorable. Lo que responde a mi pregunta perfectamente. ¡Gracias!