Часто я вижу, что сценарии начинаются со строки shebang, которая используется #!/usr/bin/env interpreter_name
для любого интерпретатора, с обоснованием того, что разные системы могут иметь интерпретатор, который им нужен для запуска, установленного в разных местах. Например, если я предполагаю, python
что установлен так, как /usr/bin/python
некоторые пользователи, которые решили установить его, /opt/python
по какой-то причине не смогут использовать его так же легко.
Но очевидный вопрос заключается в том, есть ли какая-либо гарантия, которая env
будет установлена в /usr/bin/env
(или, если уж на то пошло, в каком-то конкретном месте), или это, так сказать, «случай решения проблемы»?
В этом слегка связанном вопросе есть комментарий, в котором говорится, что это плохая идея, и желательно установить его с фактическим путем интерпретатора, и он ссылается на единственную спецификацию unix, но на самом деле не решает этот вопрос.
python
perl
т. Д., Теперь вам просто нужно выследитьenv
, поэтому та же проблема, но другая цель. Похоже, чтоenv
его гораздо легче найти, и, очевидно, он гораздо более универсален, поэтому он все еще чрезвычайно благоприятен. Который отлично отвечает на мой вопрос. Спасибо!