耙不出口PATH

时间:2015-06-21 12:49:44

标签: ruby path environment-variables rake

我想要一个Rake任务将我的命令行工具的路径导出到$ PATH,所以我的Rakefile中有以下行:

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

1 个答案:

答案 0 :(得分:2)

在Rake任务中使用sh时,它会生成一个shell并执行命令。

环境变量的生命周期PATH就是其中之一,直到shell退出。

因此:make_path任务会生成一个导出此变量的shell,然后退出。下次生成shell时,它不知道对PATH所做的修改。

对于解决方法,您可能需要查看this