Node.js ist heutzutage sehr beliebt und ich habe einige Skripte darüber geschrieben. Leider ist die Kompatibilität ein Problem. Offiziell sollte der Node.js-Interpreter aufgerufen werden node
, aber Debian und Ubuntu liefern nodejs
stattdessen eine ausführbare Datei namens .
Ich möchte portable Skripte, mit denen Node.js in möglichst vielen Situationen arbeiten kann. Angenommen, der Dateiname lautet " foo.js
Ich möchte wirklich, dass das Skript auf zwei Arten ausgeführt wird:
./foo.js
Führt das Skript aus, wenn entwedernode
oder vorhandennodejs
ist$PATH
.node foo.js
führt auch das Skript aus (vorausgesetzt, der Interpreter wird aufgerufennode
)
Hinweis: Die Antworten von xavierm02 und mir sind zwei Variationen eines mehrsprachigen Skripts. Ich bin immer noch an einer reinen Shebang-Lösung interessiert, falls es eine gibt.
alphacentauri
und so weiter unterstützen. Wenn eine ausführbare Datei aufgerufen wird nodejs
, können Sie zu 99% sicher sein, dass es sich um Node.js handelt. Warum nicht beide nodejs
und unterstützen node
?
node
für Ihr Skript zu verwenden oder eine Art make-Skript zu verwenden, das den shebang modifiziert.