技术解析

bash 可否通过 bash 脚本来设置当前 shell 的环境变量?
0
2021-07-02 23:46:09
idczone
我想设置 http 的代理.每次都在当前 shell 下输入 export http_proxy=http://127.0.0.1:7777 这类好蛋疼.

就想一条命令解决. 但是如果写在一个 bash 脚本晨面. 在当前 shell 执行这个脚本的话, 应该只是改了那个脚本里面的环境变量,
对当前 shell 没什么鸟用.

不知道是 bash 写的不对,还是什么的.
还是说只有设置 bashrc. 加个 alias
没看懂,~/.bashrc 里加一句 export http_proxy=http://127.0.0.1:7777 不行么?

不想加个全局, 只是需要的时候临时用. 当临时用又不想每次写这么长的命令

/>export http_proxy=http://127.0.0.1:7777
保存为 a.sh
需要用的时候 source a.sh

source =>.

啊??

如果想在一定时间内设置代理,那么 alias 最合适
设置代理
alias hp="export http_proxy=http://127.0.0.1:7777"
清除代理
alias us="unset http_proxy"
如果只是特定命令用代理,用 proxychains 吧
proxychains sudo apt-get update

楼主是在设置 linux 下 shadowsocks 命令行代理麽?

不懂 lz 到底是需要全局还是不需要全局啊
全局:
set_proxy(){
export http_proxy=http://127.0.0.1:7777
}
unset_proxy(){
unset http_proxy
}
只需要一条命令:
http_proxy=http://127.0.0.1:7777 balabala

可以。
保存到 shell 脚本里面,要用的时候执行下脚本。

为啥不用 proxychains 代理方式呢

proxychains +1

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html
楼主你想要的

xuboying 的意思是
./a.sh

source 可行

tsocks

临时的设置可以用 Export ,不过一旦注销什么的就废了。另外,翻墙的话不要用 bash ,很多高级功能搞不定的。

不是
应该是 . ./a.sh 注意两个点之间的空格
第一个点等效于 source

写在 .bashrc 里面:
alias proxyed = "env http_proxy=http://127.0.0.1:7777 [email&proxyed 在任意命令前头:
proxyed curl http://ipecho.net/plain

man env 看详情

bash 真是弱爆了。执行一条命令,保持当前 shell 不退出,这个功能居然他妈做不到。有 hack 居然是用 bash_rc 去 hack 。。。
windows 下 cmd /k 这种。

最快的还是 ctrl r 搜索 特别是 lz 这种
ctrl r 77 估计都出来了

source 和 . 是正解

子进程怎么能影响父进程的变量呢 科科

发现 zsh 不支持 export -f 。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服
请您留言

感谢您的关注,当前客服人员不在线,请填写一下您的信息,我们会尽快和您联系。

提交