linux – shell导出变量不生效
发布时间:2020-12-14 01:36:50 所属栏目:Linux 来源:网络整理
导读:我(在mac osx上)经常使用 export http_proxy=http://192.168.0.205:1099 代理http连接以获得更高的下载速度.为了简单起见,我编写了一个名为proxy.sh的shell文件来执行此操作: #!/bin/shexport http_proxy=http://192.168.0.205:1099 在我下载之前,我执行pro
我(在mac osx上)经常使用
代理http连接以获得更高的下载速度.为了简单起见,我编写了一个名为proxy.sh的shell文件来执行此操作: #!/bin/sh export http_proxy=http://192.168.0.205:1099 在我下载之前,我执行proxy.sh shell命令,但我发现它没有生效.它在当前的commnad窗口(终端)中丢失了http_proxy变量.我必须在当前终端输入export命令,它才会生效. 所以我想知道这是什么原因和解决方案?谢谢. 解决方法
“正常”运行shell脚本(例如使用proxy.sh)会导致在子进程中运行,从而不会影响父进程的环境.
用.或者source将在当前shell的上下文中运行shell脚本,因此它将能够使用以下方法之一来影响环境: . proxy.sh source proxy.sh 另一种可能性(如果你至少使用bash)是创建一个别名来为你完成工作.您可以使用以下内容: alias faster='export http_proxy=http://192.168.0.205:1099' 这样你就可以在命令行上更快地键入它,然后它将导出该变量(在当前shell的上下文中). 您还可以允许一次性设置,例如: alias faster='http_proxy=http://192.168.0.205:1099' 然后使用: faster your_program 这将转化为: http_proxy=http://192.168.0.205:1099 your_program 这是一种为一个命令调用设置变量的bash方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |