首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导出http_proxy变量?

如何导出http_proxy变量?
EN

Stack Overflow用户
提问于 2012-10-27 16:52:48
回答 4查看 32.7K关注 0票数 5

我正在试着写一个简单的脚本来设置代理设置。实际上我只需要用export命令导出http_proxy ftp_proxy https_proxy ...变量即可。但是当我从shell中手动运行它时,它不起作用,因为export只影响当前shell和子shell,而不影响其他shell和子shell。此外,我不想从.bashrc调用它,因为它不是我的默认代理设置。

那么我应该如何导出http_proxy变量才能在全局生效呢?

EN

回答 4

Stack Overflow用户

发布于 2012-10-27 22:48:48

回到那一天,我也厌倦了在我的工作完成后设置和取消代理设置。我总是希望有一个命令,简单的命令来为我做设置和取消设置的功能。

然后我想,如果我在.bashrc中创建一个新函数,我可以通过使用bash-tab键完成从命令行调用它。节省更多的时间。

这是我所做的:

代码语言:javascript
复制
$ vi ~/.bashrc
function setproxy() {
    export {http,https,ftp}_proxy='http://proxy-serv:8080'
}

function unsetproxy() {
    unset {http,https,ftp}_proxy
}

$ . ~/.bashrc

现在我就这么做了:

代码语言:javascript
复制
$ setproxy

代码语言:javascript
复制
$ setp<TAB> and <ENTER>

它会为我设置代理。希望这能有所帮助。

票数 20
EN

Stack Overflow用户

发布于 2012-10-27 20:27:38

不是在脚本中执行此操作,而是将其作为一个函数。您可以在.bashrc中声明此函数

代码语言:javascript
复制
function set_custom_proxy() {
  export http_proxy='http://myproxy:3128'
}

然后在当前shell中运行以下命令:

代码语言:javascript
复制
echo $http_proxy
set_custom_proxy
echo $http_proxy

它的工作原理是函数中的变量修改不是该函数的局部变量。

编辑

仅供参考:要在函数中使用局部变量,需要使用local关键字:

代码语言:javascript
复制
atest="Hello World"
btest="Hello World2"
function my_func() {
  local atest;
  atest="Hello World3"
  btest="Hello World4"
  echo $atest
  echo $btest
}
echo $atest
echo $btest
my_func
echo $atest
echo $btest
票数 4
EN

Stack Overflow用户

发布于 2012-10-27 16:59:48

由于您不能访问.bashrc,因此可以使用source命令,该命令将在当前shell的上下文中运行,并且您设置的所有变量都将可用。

代码语言:javascript
复制
source ./script
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13098634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档