What does "#!/bin/env" mean (at the top of a node.js script)?

hh54188 picture hh54188 · Feb 25, 2013 · Viewed 16.7k times · Source

I found serval node.js projects that have this at top of their app.js (as in this openshift program):

#!/bin/env node

What does this mean? How does this work? Where is it useful?

Answer

sockmonk picture sockmonk · Feb 25, 2013

The full line from your example is:

#!/bin/env node

This simply means that the script should be executed with the first executable named 'node' that's found in your current PATH.

The shebang (#!) at the start means execute the script with what follows. /bin/env is a standard unix program that looks at your current environment. Any argument to it not in a 'name=value' format is a command to execute. See your env manpage for further details.