美文网首页
Shell修改当前终端环境变量

Shell修改当前终端环境变量

作者: Jerry2015 | 来源:发表于2017-08-20 22:00 被阅读489次

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

        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脚本放到当前环境变量下执行了。

    相关文章

      网友评论

          本文标题:Shell修改当前终端环境变量

          本文链接:https://www.haomeiwen.com/subject/eyrqdxtx.html