如何使javascript支持shebang(#!)?

kev*_*kev 21 javascript bash shebang node.js

一些脚本语言(如Python或Bash)#用于注释.

#!/usr/bin/env python
print 'hello, world'
Run Code Online (Sandbox Code Playgroud)

我可以运行脚本:

python script.py
Run Code Online (Sandbox Code Playgroud)

要么

./script.py
Run Code Online (Sandbox Code Playgroud)

是否有可能使JavaScript支持shebang?

Thi*_*ter 36

是的,您可以简单地使用#!/usr/bin/env node(或者您的JavaScript解释器的名称,它也适用于js(spidermonkey)).

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

很可能两个解释器都会测试第一行是否开头,#!在这种情况下它会被跳过.

  • 是的,如果它是一个shebang线.否则它将是一个SyntaxError. (6认同)
  • 节点是否忽略第一行?`#` 不是 javascript 中的注释。 (4认同)
  • 它适用于节点,但我无法使用v8. (3认同)
  • YUI Compressor 抛出一个错误,指出这个(#!)是一个非法字符。此外,我的 IDE (Eclipse) 也将此显示为错误。是什么赋予了?是否有效? (2认同)