O Node.js é muito popular hoje em dia e eu escrevi alguns scripts nele. Infelizmente, a compatibilidade é um problema. Oficialmente, o intérprete Node.js. deve ser chamado node, mas o Debian e o Ubuntu enviam um executável chamado nodejs.
Eu quero scripts portáteis com os quais o Node.js possa trabalhar em tantas situações quanto possível. Supondo que o nome do arquivo seja foo.js, eu realmente quero que o script seja executado de duas maneiras:
./foo.jsexecuta o script, se quernodeounodejsestá em$PATH.node foo.jstambém executa o script (assumindo que o intérprete é chamadonode)
Nota: As respostas de xavierm02 e de mim são duas variações de um script poliglota. Ainda estou interessado em uma solução pura, se houver.
alphacentaurie tal. Se houver um executável chamado nodejs, você pode ter 99% de certeza de que é Node.js. Por que não apoiar os dois nodejse node?
nodepara o seu script ou ter um tipo de script make que modifique o shebang.