如今,Node.js非常受欢迎,我一直在上面编写一些脚本。不幸的是,兼容性是一个问题。正式地,应该将Node.js解释器称为node
,但是Debian和Ubuntu附带了一个名为的可执行文件nodejs
。
我希望Node.js可以在尽可能多的情况下使用的可移植脚本。假设文件名是foo.js
,我真的希望脚本以两种方式运行:
./foo.js
如果node
或nodejs
位于中,则运行脚本$PATH
。node foo.js
也运行脚本(假设解释器称为node
)
注意: xavierm02和我本人的答案是多语言脚本的两个变体。我仍然对纯粹的shebang解决方案感兴趣,如果有的话。
alphacentauri
。如果有一个名为的可执行文件nodejs
,则可以确保它有99%是Node.js。为什么不同时支持nodejs
和node
?
node
您为脚本使用标准名称,或者使用一种可以修改shebang的make脚本。