2017-08-08 5 views
0

Il s'avère qu'un tool for evaluating json qui bourdonne bien sur mon Mac n'était pas aussi multi-plateforme que je pensais. Une fois que je l'ai installé sur Ubuntu je suis arrivé cette erreur:Commande avec des options dans GNU env ligne shebang jette erreur

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

Il se trouve que GNU env pense que la commande avec l'argument in the shebang line doit être évalué comme une chaîne. Cela ne se produit pas sur BSD. Évaluer manuellement la même commande sur la ligne de commande semble être bien - l'erreur se produit seulement quand il est écrit dans le fichier.

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

J'ai essayé diverses en vain, la question demeure:

Comment puis-je passer des options à la commande dans la ligne de tralala qui fonctionnera avec la commande de GNU env?

Répondre

1

The #! syntax is generally called the Berkeley #! hack. It was a wonderful improvement over not having it at all. But is still considered a hack because it has many limitations. One is that only one argument is allowed. Some operating systems have a limit of not more than 32 characters for the line allowed.