Node.js è molto popolare in questi giorni e ho scritto alcuni script su di esso. Sfortunatamente, la compatibilità è un problema. Ufficialmente, l'interprete Node.js dovrebbe essere chiamato node
, ma Debian e Ubuntu forniscono nodejs
invece un eseguibile chiamato .
Voglio script portatili con cui Node.js possa lavorare il maggior numero possibile di situazioni. Supponendo che il nome del file sia foo.js
, voglio davvero che lo script venga eseguito in due modi:
./foo.js
esegue lo script se unonode
onodejs
è dentro$PATH
.node foo.js
esegue anche lo script (supponendo che venga chiamato l'interpretenode
)
Nota: le risposte di xavierm02 e di me sono due varianti di uno script poliglotta. Sono ancora interessato a una soluzione pura di shebang, se esiste.
alphacentauri
e così via. Se c'è un eseguibile chiamato nodejs
, puoi essere sicuro al 99% che sia Node.js. Perché non supportare entrambi nodejs
e node
?
node
per il tuo script o di avere una sorta di script di make che modifica lo shebang.