编写节点Shell脚本时找不到命令

时间:2012-06-26 17:48:16

标签: shell node.js command-line

我正在尝试使用Node.js创建一个类似于expressmocha等包的shell脚本。我的初始测试报告命令未找到,所以我将脚本备份到以下内容:

#!/usr/bin/env node

console.log("printing stuff");

以上应该只在运行时输出“打印东西”;但是,这也行不通。

我正在尝试通过文件目录中的./script执行脚本,以确保它不是路径问题。尝试在特权状态(即sudo)下执行会产生相同的结果/错误消息。

知道我需要做什么吗?

2 个答案:

答案 0 :(得分:2)

当你选择(#!/usr/bin/env node时,你说“在我的PATH上寻找一个名为节点的程序”。如果node -v正在运作,正如@Ryan所说,shebang应该可以正常工作。您是否有机会使用名为node的shell别名或shell函数?这可能会让你觉得你的PATH是正确的,即使它没有。但实质上,只需确保node二进制文件所在的目录(节点安装下的bin目录)在您的PATH环境变量上,并且事情真的应该在那时起作用。

export PATH=/usr/local/node/bin:$PATH

答案 1 :(得分:2)

弄清楚我的问题。我制作了shell脚本但忘了在文件上设置执行权限。做chmod a+x script解决了这个问题。