2011-01-25 103 views
28

我喜欢javascript,所以当听说Node.js是一个基于V8的Javascript运行时时,我很兴奋。我宁愿在Javascript中执行我的shell脚本。我的问题是这样的:我怎样才能运行我的脚本,而不致电node ~/Scripts/myscript.js?在我的脚本chmod +x之后,它尝试以bash脚本而非Node.js javascript的形式运行。是否可以在不调用`node`的情况下运行Node.js脚本?

+0

imho这属于stackoverflow.com – akira 2011-01-25 07:21:44

+1

@akira我在这里发布它,因为它关注工具使用,而不是编程主题。我的问题是关于操作系统如何处理脚本文件,而不是如何编写所述脚本。 – 2011-01-25 17:38:14

回答

34

什么让你当前的shell启动bash是你的当前shell(bash?)不知道如何处理file.js.这就是为什么UNIX的神发明了shebang为:

包括文字数字符号和感叹号(!#)的字符序列,当它发生在一个文本文件的第一行的前两个字符。在这种情况下,类Unix操作系统中的程序加载器会将第一行的其余部分解析为解释器指令,并使用任何指定为参数的命令行选项调用在字符序列之后指定的程序。

所以,你的情况我会尽量把

#!/usr/bin/env node 

在脚本的顶部。你可以看到,beeing应用在'inode'(interactive node.js)shell中,这可能是另一种选择来激活你的脚本。

https://github.com/bancek/node-interactive-shell/blob/master/inode.js

0

你总是可以简单地创建为你运行节点的shell脚本。

或者,如果您要创建可在未安装node.js的环境中运行的脚本,则可以使用installer-maker

相关问题