我经常会看到脚本以#!/usr/bin/env interpreter_name
用于任何解释器的 shebang 行开头,理由是不同的系统可能具有它们需要的解释器,以便在不同的地方运行。例如,如果我假设python
已安装,/usr/bin/python
那么某些/opt/python
出于某种原因决定安装它的用户将无法轻松使用它。
但显而易见的问题是,是否有任何保证env
将安装在/usr/bin/env
(或就此而言任何特定的地方),或者这只是“移动问题”的一个案例?
这个稍微相关的问题有一条评论说这是一个坏主意,最好使用解释器的实际路径安装它并引用单个 unix 规范,但并没有真正解决这个问题。