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

Macos 是否可以在不调用“Node”的情况下运行Node.js脚本?,macos,command-line,node.js,Macos,Command Line,Node.js,我喜欢javascript,所以当我听说基于V8的javascript运行时时,我很兴奋。我更喜欢用Javascript编写shell脚本。我的问题是:如何在不调用node~/scripts/myscript.js的情况下运行脚本?在Ichmod+xmy script之后,它尝试作为bash脚本而不是Node.js javascript运行。使当前shell启动bash的原因是当前shell(bash?)不知道如何处理file.js。这就是为什么unix的神发明了: 由数字符号和感叹号(#!)组

我喜欢javascript,所以当我听说基于V8的javascript运行时时,我很兴奋。我更喜欢用Javascript编写shell脚本。我的问题是:如何在不调用
node~/scripts/myscript.js
的情况下运行脚本?在I
chmod+x
my script之后,它尝试作为bash脚本而不是Node.js javascript运行。

使当前shell启动bash的原因是当前shell(bash?)不知道如何处理file.js。这就是为什么unix的神发明了:

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

 #!/usr/bin/env node
在脚本的顶部。例如,您可以在“inode”(interactive node.js)shell中看到being的应用,这可能是启动脚本的另一个选项


您总是可以简单地创建一个运行节点的shell脚本


或者,如果您想创建一个脚本,该脚本可以在没有安装node.js的环境中运行,您可以使用。

imho这属于stackoverflow。com@akira我把它贴在这里是因为它关注的是工具的使用,而不是编程主题。我的问题是关于操作系统如何处理脚本文件,而不是如何编写脚本。实际上,在Geany中这样做很容易:实际上他应该使用
#/usr/bin/env节点
。PS:将节点安装为根节点是。。。作为一个坏主意,总是在
~/.local
中安装它,还应该在那里安装npm。否则,必须使用sudonpm来安装东西,并且节点包可以有安装后脚本;)@Ivo Wetzel如何将Node.js安装移动到~/.local?我应该卸载并重新安装吗?我使用“make”从源代码构建卸载当前的一个,然后参考以下要点:即使脚本完成运行,如何保持终端窗口打开?我注意到,当我尝试在终端中运行脚本时,终端窗口通常会快速打开和关闭,而不是保持打开状态。@AndersonGreen打开一个新窗口,然后
cd
到要运行的脚本目录,然后键入
/YourScriptName
运行它。