我正在尝试使用类似于express和mocha等包的 Node.js 创建一个 shell 脚本。我的初始测试报告未找到命令,因此我将脚本支持为以下内容:
#!/usr/bin/env node
console.log("printing stuff");
以上内容在运行时应该只输出“打印内容”;但是,这也行不通。
我试图通过./script
在文件目录中执行脚本,以确保它不是路径问题。尝试在特权状态(即 sudo)下执行会产生相同的结果/错误消息。
知道我需要做什么吗?
当你 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
想通了我的问题。我制作了 shell 脚本,但忘记为文件设置执行权限。做一个chmod a+x script
解决了这个问题。