Saya punya skrip sederhana:
#!/usr/bin/env ruby --verbose
# script.rb
puts "hi"
Di kotak OSX saya, itu berjalan dengan baik:
osx% ./script.rb
hi
Namun, pada kotak linux saya, ada kesalahan
linux% ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
Jika saya menjalankan garis shebang secara manual, itu berfungsi dengan baik
linux% /usr/bin/env ruby --verbose ./script.rb
hi
Tapi saya bisa meniru kesalahan jika saya masukkan ruby --verbose
ke argumen tunggalenv
linux% /usr/bin/env "ruby --verbose" ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
Jadi saya pikir ini adalah masalah dengan bagaimana env
menafsirkan reset garis shebang. Saya menggunakan 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.
Ini sepertinya sangat aneh. Apakah ini masalah umum dengan versi ini env
, atau ada hal lain yang terjadi di sini yang tidak saya ketahui?