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 nodejsplace 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.jsexécute le script sinodeounodejsest dans$PATH.node foo.jsexé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 nodejset node?
nodepour votre script ou d'avoir une sorte de script de création qui modifie le shebang.