我有一个shell脚本来运行node,参数如下:
#!/usr/bin/env node --harmony_proxies
...这在OS X上运行良好,但在Ubuntu中会出现以下错误:
/usr/bin/env: node --harmony_proxies: No such file or directoryNode肯定是安装的,并且在路径上,因为如果我删除--harmony_proxies标志,它就能正常工作。在Ubuntu中使用env传递参数有什么不同的方式吗?
发布于 2011-11-13 09:43:52
在Linux上,解释器名称后面的整个字符串作为单个参数传递给解释器,此字符串可以包含空格。因此,命令行参数未拆分,并且env命令正在尝试执行node --harmony_proxies文件,但显然找不到该文件。有关更多详细信息,请参阅here和here。
以下是为您提供的替代解决方案:
#!/bin/sh
exec node --harmony_proxies "$@"希望能有所帮助。祝好运!
发布于 2011-11-13 09:46:48
如果node命令安装在固定位置,则可以直接使用:
#!/usr/bin/node --harmony_proxies但是,如果您不能假设node安装在特定的位置,那么可以使用其他答案之一。
发布于 2016-12-14 07:21:44
如果您不想修改源代码,a wrapper alias可能是正确的解决方案。
来自my .bashrc的示例:
alias how2='/usr/bin/env node --no-deprecation "$(which how2)"'https://stackoverflow.com/questions/8108917
复制相似问题