事实证明,在我的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
>
我尝试了各种各样但无济于事,所以问题仍然存在:
如何将选项传递给将使用GNU env
命令的shebang行中的命令?
答案 0 :(得分:1)
#!语法通常被称为Berkeley#!黑客攻击。那是个 没有它完美的改进。但仍然是 被认为是黑客,因为它有很多局限性。一个是那个 允许一个参数。某些操作系统有限制 允许的行数超过32个字符。