首页 > 解决方案 > 为什么 'unset http_proxy' 在 Rakefile 中不起作用

问题描述

'unset http_proxy' 或 'unset HTTP_PROXY' 在 Rakefile 中不起作用,在以下两个场景中其他 bash 命令成功工作

*文件格式:Rakefile

场景一:

 desc "Remove HTTP  Proxy"
 task :remove_http do

 puts "removing HTTP  Proxy..."
 sh "unset HTTP_PROXY"
 puts"Removed HTTP & HTTPS Porxy"
 puts "Showing Environment Variables"
 sh "env"

end

场景二:

 desc "Remove HTTP Proxy"
 task :remove_http do

 puts "removing HTTP Proxy..."
`unset HTTP_PROXY`
 puts"Removed HTTP Porxy"
 puts "Showing Environment Variables"
 sh "env"

end

任何想法如何解决或取消设置 HTTP_PROXY 的 bash 命令将在 ruby​​ Rakefile 中成功?

标签: rubybashcommand-linerakefile

解决方案


为了详细说明乔提到的内容,

当您使用 sh 执行某些操作时,您会启动与运行 ruby​​ 程序不同的 shell/会话。

在这种情况下,你unset HTTP_PROXY在一个会话中。然后在不同的会话中显示环境。还有第三个会话正在运行您的 ruby​​ 程序。

如果您想取消设置 HTTP_PROXY,请尝试这样做

p ENV['HTTP_PROXY'] # See if it's there
ENV.delete('HTTP_PROXY')
p ENV['HTTP_PROXY'] # See if it's gone

推荐阅读