首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在env调用中向命令传递参数不起作用?

为什么在env调用中向命令传递参数不起作用?
EN

Stack Overflow用户
提问于 2011-11-13 09:33:21
回答 3查看 1.4K关注 0票数 4

我有一个shell脚本来运行node,参数如下:

代码语言:javascript
复制
#!/usr/bin/env node --harmony_proxies
...

这在OS X上运行良好,但在Ubuntu中会出现以下错误:

代码语言:javascript
复制
/usr/bin/env: node --harmony_proxies: No such file or directory

Node肯定是安装的,并且在路径上,因为如果我删除--harmony_proxies标志,它就能正常工作。在Ubuntu中使用env传递参数有什么不同的方式吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-13 09:43:52

在Linux上,解释器名称后面的整个字符串作为单个参数传递给解释器,此字符串可以包含空格。因此,命令行参数未拆分,并且env命令正在尝试执行node --harmony_proxies文件,但显然找不到该文件。有关更多详细信息,请参阅herehere

以下是为您提供的替代解决方案:

代码语言:javascript
复制
#!/bin/sh
exec node --harmony_proxies "$@"

希望能有所帮助。祝好运!

票数 7
EN

Stack Overflow用户

发布于 2011-11-13 09:46:48

如果node命令安装在固定位置,则可以直接使用:

代码语言:javascript
复制
#!/usr/bin/node --harmony_proxies

但是,如果您不能假设node安装在特定的位置,那么可以使用其他答案之一。

票数 0
EN

Stack Overflow用户

发布于 2016-12-14 07:21:44

如果您不想修改源代码,a wrapper alias可能是正确的解决方案。

来自my .bashrc的示例:

代码语言:javascript
复制
alias how2='/usr/bin/env node --no-deprecation "$(which how2)"'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8108917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档