J'ai un script simple:
#!/usr/bin/env ruby --verbose
# script.rb
puts "hi"
Sur ma machine OSX, ça fonctionne bien:
osx% ./script.rb
hi
Cependant, sur ma machine Linux, cela jette une erreur
linux% ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
Si je lance la ligne shebang manuellement, cela fonctionne bien
linux% /usr/bin/env ruby --verbose ./script.rb
hi
Mais je peux reproduire l'erreur si je compresse ruby --verbose
en un seul argumentenv
linux% /usr/bin/env "ruby --verbose" ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
Donc, je pense que c'est un problème avec la façon dont env
on interprète la réinitialisation de la ligne shebang. J'utilise GNU Coreutils 8.4 env
:
linux% /usr/bin/env --version
env (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard Mlynarik and David MacKenzie.
Cela semble vraiment étrange. Est-ce un problème courant avec cette version de env
ou y a-t-il autre chose que je ne connais pas qui se passe ici?