9
为什么最好用“#!/ usr / bin / env名称”代替“#!/ path / to / NAME”作为我的shebang?
我注意到,我从其他人那里获得的一些脚本具有shebang,#!/path/to/NAME而另一些(使用相同工具NAME)具有shebang #!/usr/bin/env NAME。 两者似乎都能正常工作。在教程中(例如,在Python上),似乎有人建议后者shebang更好。但是,我不太明白为什么会这样。 我意识到,要使用后一个shebang,NAME必须在PATH中,而第一个shebang没有此限制。 另外,对我来说,第一个似乎是更好的shebang,因为它精确指定了NAME的位置。因此,在这种情况下,如果存在多个版本的NAME(例如/ usr / bin / NAME,/ usr / local / bin / NAME),则第一种情况指定要使用的版本。 我的问题是,为什么第一个shebang优先于第二个?
458
shell-script
shebang