Подтвердить что ты не робот

Ruby - получить исполняемый файл

Я пытаюсь получить ссылку на script, переданную интерпретатору ruby. Например, если я выполняю ruby foo.rb, я хочу получить ссылку на файл foo.rb.

Я думаю, что в Python это будет доступно через sys.argv[0]. Можно было бы назвать __FILE__, но это не решение, которое я ищу, так как __FILE__ дает файл, внутри которого находится текущий исполняемый код.

Есть ли способ сделать это?

4b9b3361

Ответ 1

Я обнаружил, что $0 - это имя файла, используемого для запуска программы. Легко.

Ответ 2

Использовать методы в классе File для управления FILE

Внутри test.rb у меня есть

puts __FILE__
puts File.dirname(__FILE__)
puts File.basename(__FILE__)

При запуске

ruby a/b/test.rb

Вы получаете

a/b/test.rb
a/b
test.rb