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