为什么'unset http_proxy'在Rakefile中不起作用

时间:2018-07-26 13:50:47

标签: ruby bash command-line rakefile

“未设置http_proxy”或“未设置HTTP_PROXY”在Rakefile中不起作用,并且以下两个场景成功执行了其他bash命令

*文件格式:Rakefile

场景1:

 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

方案2:

 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中成功完成?

1 个答案:

答案 0 :(得分:0)

要详细说明乔提到的内容,

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

在这种情况下,您在一个会话中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