I've got a simple script:
#!/usr/bin/env ruby --verbose
# script.rb
puts "hi"
On my OSX box, it runs fine:
osx% ./script.rb
hi
However, on my linux box, it throws an error
linux% ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
If I run the shebang line manually, it works fine
linux% /usr/bin/env ruby --verbose ./script.rb
hi
But I can replicate the error if I pack ruby --verbose
into a single argument to env
linux% /usr/bin/env "ruby --verbose" ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
So I think this is an issue with how env
is interpreting the reset of the shebang line. I'm using 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.
This seems really odd. Is this a common issue with this version of env
, or is there something else going on here that I don't know?