1

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

#!/usr/bin/env node

console.log("printing stuff");

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

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

知道我需要做什么吗?

4

2 回答 2

2

当你 shebang ( #!)/usr/bin/env node时,你说的是“在我的 PATH 上寻找一个名为 node 的程序”。如果node -v像@Ryan 所说的那样做有效,那么shebang 应该可以正常工作。你有没有机会命名为 shell 别名或 shell 函数node?这可能会给您一种错觉,即您的 PATH 是正确的,即使它不是正确的。但本质上,只需确保node二进制文件所在的目录(bin节点安装下的目录)在您的 PATH 环境变量中,此时一切都应该正常工作。

export PATH=/usr/local/node/bin:$PATH
于 2012-06-26T18:06:46.373 回答
2

想通了我的问题。我制作了 shell 脚本,但忘记为文件设置执行权限。做一个chmod a+x script解决了这个问题。

于 2012-06-26T18:10:29.833 回答