2015-06-21 2 views
0

Я хотел бы задачу Rake экспортировать путь в мой инструмент командной строки в $ PATH, и поэтому у меня есть следующие строки в моем Rakefile:Рек не экспорт PATH

task :make_path do 
    sh 'export PATH=$HOME/Desktop/folder:$PATH' 
end 

При вводе этой строки export PATH=$HOME/Desktop/folder:$PATH в терминал напрямую, путь добавляется к переменной $ PATH. Однако, если я запускаю rake make_path, ничего не меняется. Зачем?

Следующая задача правильно добавляет разрешения на выполнение в мой файл строка инструмента команды:

task :chmod do 
    sh 'chmod +x my_file' 
end 

ответ

2

При использовании sh внутри задачи Rake, он запускает оболочку и выполняет команду.

Срок службы переменных окружения, PATH является одним из них, пока оболочка не выйдет.

Задача :make_path порождает оболочку, которая экспортирует эту переменную, а затем завершает работу. В следующий раз, когда появляется оболочка, он не знает изменений, внесенных в PATH.

Для обходных путей вы можете посмотреть this.

Смежные вопросы