30

Some scripting languages (such as Python or Bash) use # for comments.

#!/usr/bin/env python print 'hello, world' 

I can run the script:

python script.py 

Or

./script.py 

Is it possible to make JavaScript support shebang?

1

1 Answer 1

50

Yes, you can simply use #!/usr/bin/env node (or whatever the name of your JavaScript interpreter is, it works fine with js (spidermonkey), too).

[me@hades:~]> cat > test.js #!/usr/bin/env node console.log('hi'); [me@hades:~]> chmod +x test.js [me@hades:~]> ./test.js hi 

Most likely both interpreters test if the first line begins with #! and in this case it is skipped.

Sign up to request clarification or add additional context in comments.

4 Comments

Does node ignore the first line? # is not a comment in javascript.
Yes, if it's a shebang line. Otherwise it would be a SyntaxError.
YUI Compressor throws an error saying that this (the #!) is an illegal character. Further, my IDE (Eclipse) shows this as an error as well. What gives? Is it valid or not?
It is indeed in the spec, but I can imagine that a lot of implementations just don't support it: 262.ecma-international.org/14.0/#sec-hashbang

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.