Node.jsは最近非常に人気があり、いくつかのスクリプトを書いています。残念ながら、互換性は問題です。公式には、Node.jsインタープリターはと呼ばれることになっていますnode
が、DebianとUbuntuはnodejs
代わりに呼び出される実行可能ファイルを出荷しています。
Node.jsが可能な限り多くの状況で使用できるポータブルスクリプトが必要です。ファイル名がfoo.js
であると仮定すると、2つの方法でスクリプトを実行したいです。
./foo.js
node
またはのいずれかでnodejs
ある場合、スクリプトを実行します$PATH
。node foo.js
また、スクリプトを実行します(インタープリターが呼び出されると仮定node
)
注: xavierm02と私による回答は、ポリグロットスクリプトの2つのバリエーションです。純粋なシバンソリューションが存在する場合、それにも興味があります。
alphacentauri
。という実行可能ファイルがある場合nodejs
、Node.jsであることを99%確信できます。nodejs
との両方をサポートしないのはなぜnode
ですか?
node
スクリプトに標準名を使用するか、シバンを変更する一種のmakeスクリプトを使用することをお勧めします。