2015-06-21 62 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就是其中之一,直到shell退出。

因此:make_path任務產生一個shell,該shell輸出這個變量然後退出。下一次產生殼時,它不知道對PATH所做的修改。

要了解變通方法,您可能需要查看this