Wewnątrz skryptu ruby, jak uzyskać ścieżkę do interpretera ruby?Jak znaleźć tłumacza ruby?
Przykład skryptu:
#!/path/to/ruby
puts `#{RUBY_INTERPRETER_PATH} -e "puts 'hi'"`
#EOF
Gdzie RUBY_INTERPRETER_PATH
jest mityczny sposób na znalezienie /path/to/ruby
.
To tylko przykład. W tym przypadku zdaję sobie sprawę, że mogę skopiować do skryptu /path/to/ruby
, ale nie chcę tego robić. Chcę, aby to działało "poprawnie" bez względu na to, co mówi linia #!
. Nawet jeśli działa pod oknami.
Ciao!
Mogę potwierdzić, że działa dla jruby: 'ruby -e 'umieszcza RbConfig.ruby' =>/usr/local/var/rbenv/versions/jruby-1.7.4/bin/jruby' –
Nawet na 1.8, mógłbyś' wymagać "rubygemów"; umieszcza (Gem.ruby()) '. Czy byłby to poprawny, per @ user945466, gdyby ktoś zainstalował taką binarkę w innym miejscu? W systemie Linux można uzyskać gwarantowaną odpowiedź za pomocą 'puts (File.readlink ("/proc/self/exe "))'. –