一尘不染

是否可以在不调用`node`的情况下运行Node.js脚本?

node.js

我喜欢javascript,所以当我听说基于V8的Javascript运行时Node.js时,我感到非常兴奋。我更喜欢用Javascript编写外壳脚本。我的问题是:如何在不调用的情况下运行脚本node ~/Scripts/myscript.js?在chmod +x我编写完脚本之后,它会尝试作为bash脚本而不是Node.js
javascript运行。


阅读 282

收藏
2020-07-07

共1个答案

一尘不染

使您当前的外壳开始bash的原因是您当前的外壳(bash?)不知道如何处理file.js。因此,Unix的众神为以下目的发明了Shebang

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

所以,在您的情况下,我会尽量

 #!/usr/bin/env node

在脚本的顶部。您可以看到例如在“ inode”(交互式node.js)shell中应用了beeing,这可能是触发脚本的另一种选择。

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

2020-07-07