Shell修改当前终端环境变量

2017-08-20  本文已影响489人  Jerry2015

由于很多不可知的明显原因,我需要在终端里使用下面这样一个命令来设置代理。

    export http_proxy=127.0.0.1:1234
    export https_proxy=127.0.0.1:1234

然后每次都需要打这么多字实在是不爽。那怎么办?写shell脚本。但是把上面代码写成一个shell脚本有个问题,脚本只能改变脚本本身的环境变量,并不能改变调用shell脚本的终端的环境变量。
那怎么破?
我们可以曲线来解决。

echo 'export http_proxy=127.0.0.1:1234
export https_proxy=127.0.0.1:1234'

保存文件为setproxy。然后这样调用

`setproxy`

神奇的事情发生了,当前终端的环境变量被修改了。
怎么回事?其实很简单,我们脚本本身保存了设置代理的命令本身。然后脚本不再是直接修改代理,而是输出设置代理需要执行的命令,然后利用``(数字1左边的按键)包裹起来执行脚本内容,然后因为实际执行export的是当前终端,那修改的也当然是当前终端的代理了。
如果你把setproxy所在文件夹设置环境变量。那就可以在任意目录通过setproxy来修改环境变量了。EasyGame。
当然如果你喜欢可以继续再写个脚本。

#!/bin/bash

s=$1
spath=`which $s`
scontent=`cat ${spath} | grep -v "#"`

保存文件名为:getrun
然后通过

`getrun anyshell`

就可以把任意shell脚本放到当前环境变量下执行了。

上一篇下一篇

猜你喜欢

热点阅读