#ruby #процесс
Подскажите, возможно ли сменить директорию из руби-скрипта в окне консоли, из которой он был вызван? Что то вроде: # test.rb `cd /new/dir` Желаемый результат: $ pwd /my/test/dir $ ruby test.rb && pwd /new/dir
Ответы
Ответ 1
краткий ответ: это невозможно. чуть более длинный ответ (с некоторыми упрощениями и без кучи оговорок): текущий каталог — это свойство процесса. свойство это наследуется «дочерними» процессами от «родительского». когда вы в оболочке выполняете, например, команду ruby ..., оболочка запускает «дочерний« процесс (делает fork), который уже и «загружает в себя» бинарный файл /usr/bin/ruby. этот «дочерний» процесс (под управлением загруженного бинарника), конечно, может изменить своё свойство — текущий каталог, и даже передать его «по наследству потомкам». но на «родительский» процесс он никакого влияния оказать не может.Ответ 2
сменить директорию в окне консоли можно, если устроит создание дочернего шелла # chdir.rb Dir.chdir ARGV[0] exec "bash" $ pwd /home/me/dir1/dir2 $ ruby chdir.rb .. $ pwd /home/me/dir1
Комментариев нет:
Отправить комментарий