Node.js est très populaire ces jours-ci et j'ai écrit quelques scripts dessus. Malheureusement, la compatibilité est un problème. Officiellement, l'interpréteur Node.js est censé être appelé node
, mais Debian et Ubuntu fournissent à la nodejs
place un exécutable appelé .
Je veux des scripts portables que Node.js puisse utiliser dans autant de situations que possible. En supposant que le nom de fichier soit foo.js
, je veux vraiment que le script s'exécute de deux manières:
./foo.js
exécute le script sinode
ounodejs
est dans$PATH
.node foo.js
exécute également le script (en supposant que l'interprète soit appelénode
)
Remarque: les réponses de xavierm02 et de moi-même sont deux variantes d'un script polyglotte. Je suis toujours intéressé par une solution pure de shebang, si une telle existe.
alphacentauri
, etc. Si un exécutable est appelé nodejs
, vous pouvez être sûr à 99% que c'est Node.js. Pourquoi ne pas soutenir les deux nodejs
et node
?
node
pour votre script ou d'avoir une sorte de script de création qui modifie le shebang.