我有一个 shell 脚本来运行带有一些参数的 Node ,如下所示:
#!/usr/bin/env node --harmony_proxies
...
这在 OS X 下工作正常,但在 Ubuntu 下它会出错:
/usr/bin/env: node --harmony_proxies: No such file or directory
Node 肯定已安装并位于 PATH 上,因为如果我删除 --harmony_proxies
标志,它就可以正常工作。在 Ubuntu 中使用 env
时是否有一些不同的参数传递方式?
最佳答案
在 Linux 上,解释器名称后面的整个字符串作为单个参数传递给解释器,并且该字符串可以包含空格。 [1]因此,命令行参数没有拆分,env
命令试图执行 node --harmony_proxies
文件,显然找不到。参见 here和 here了解更多详情。
这里有一个替代解决方案:
#!/bin/sh
exec node --harmony_proxies "$@"
希望对您有所帮助。祝你好运!
关于node.js - 为什么在 env 调用中将参数传递给命令不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108917/