私は簡単なスクリプトを持っています:
#!/usr/bin/env ruby --verbose
# script.rb
puts "hi"
私のOSXボックスでは、うまく動きます:
osx% ./script.rb
hi
しかし、私のLinuxボックスでは、エラーがスローされます
linux% ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
シバンラインを手動で実行すると、正常に動作します
linux% /usr/bin/env ruby --verbose ./script.rb
hi
しかしruby --verbose
、1つの引数にパックするとエラーを再現できますenv
linux% /usr/bin/env "ruby --verbose" ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
だから、これはenv
シェバンラインのリセットをどのように解釈するかという問題だと思います。私は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.
これは本当に奇妙に思えます。これは、このバージョンの一般的な問題env
ですか、それとも、私が知らない他の何かがここで起こっていますか?