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

Может ли Ruby script указать, в каком каталоге он находится?

Вдохновленный Получение исходной директории Bash script из, какой способ Ruby сделать это?

4b9b3361

Ответ 1

File.dirname(__FILE__) предоставит вам путь по отношению к запущенному script. File.expand_path(File.dirname(__FILE__)) даст вам абсолютный путь.

Ответ 3

использовать __dir__

File.dirname(__FILE__) не является правильным способом получить каталог, в котором хранится script.

При запуске рабочий каталог и каталог с файлом script тот же, но он может измениться.

Например:

Dir.chdir('..') do
    puts __dir__
    puts File.expand_path(File.dirname(__FILE__))
end

для script файла, хранящегося в /Desktop/tmp, запускающем его, выдаст вывод

/home/mateusz/Desktop/tmp
/home/mateusz/Desktop

Ответ 4

ENV [ "PWD" ] кажется самым простым способом для меня в Linux. Я не знаю об OS-агностическом пути.