【问题标题】:Command with options in GNU env shebang line throws errorGNU env shebang 行中带有选项的命令引发错误
【发布时间】:2017-08-08 06:58:30
【问题描述】:

事实证明,在我的 Mac 上运行良好的 tool for evaluating json 并不像我想象的那样跨平台。一旦我在 Ubuntu 上安装它,我就收到了这个错误:

npm install -g pick_json
echo '{ "foo" : {  "bar" : 2 } }' | pick_json -e foo.bar
/usr/bin/env: ‘node --harmony’: No such file or directory

事实证明,GNU env 认为带有参数 in the shebang line 的命令应该被评估为一个字符串。这不会发生在 BSD 上。在命令行上手动评估相同的命令似乎没问题 - 错误仅在写入文件时发生。

$ /usr/bin/env node --harmony
>

我尝试了各种无济于事,所以问题仍然存在:

如何将选项传递给 shebang 行中可与 GNU 的 env 命令一起使用的命令?

【问题讨论】:

    标签: shell gnu bsd shebang


    【解决方案1】:

    #!语法通常称为伯克利#!黑客。那是个 与根本没有它相比有了很大的改进。但还是 被认为是 hack,因为它有很多限制。一个是只有 一个参数是允许的。某些操作系统的限制为 not 该行允许超过 32 个字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 2014-05-28
      • 2017-01-22
      • 2013-05-09
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多