bash 可否通过 bash 脚本来设置当前 shell 的环境变量?

2016-06-08 10:13:39 +08:00
 holmesabc
我想设置 http 的代理.每次都在当前 shell 下输入 export http_proxy=http://127.0.0.1:7777 这类好蛋疼.

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

不知道是 bash 写的不对,还是什么的.
还是说只有设置 bashrc. 加个 alias
5802 次点击
所在节点    Linux
24 条回复
missdeer
2016-06-08 10:16:23 +08:00
没看懂,~/.bashrc 里加一句 export http_proxy=http://127.0.0.1:7777 不行么?
holmesabc
2016-06-08 10:18:45 +08:00
@missdeer 不想加个全局, 只是需要的时候临时用. 当临时用又不想每次写这么长的命令
xiaooloong
2016-06-08 10:21:30 +08:00
#!/bin/sh
export http_proxy=http://127.0.0.1:7777
保存为 a.sh

需要用的时候 source a.sh
xuboying
2016-06-08 10:22:54 +08:00
@xiaooloong source =>.
xiaooloong
2016-06-08 10:28:14 +08:00
@xuboying 啊??
Goooogle
2016-06-08 10:28:38 +08:00
如果想在一定时间内设置代理,那么 alias 最合适
设置代理
alias hp="export http_proxy=http://127.0.0.1:7777"
清除代理
alias us="unset http_proxy"

如果只是特定命令用代理,用 proxychains 吧
proxychains sudo apt-get update
wujunze
2016-06-08 10:32:31 +08:00
楼主是在设置 linux 下 shadowsocks 命令行代理麽?
lukertty
2016-06-08 10:33:06 +08:00
不懂 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
CinderellaCiCi
2016-06-08 10:33:44 +08:00
可以。
保存到 shell 脚本里面,要用的时候执行下脚本。
wxg4net
2016-06-08 10:36:36 +08:00
为啥不用 proxychains 代理方式呢
clino
2016-06-08 10:40:07 +08:00
proxychains +1
kfll
2016-06-08 10:41:35 +08:00
bdbai
2016-06-08 11:03:22 +08:00
@xiaooloong xuboying 的意思是
./a.sh
jason19659
2016-06-08 11:11:05 +08:00
source 可行
imn1
2016-06-08 11:35:24 +08:00
tsocks
Neveroldmilk
2016-06-08 11:57:08 +08:00
临时的设置可以用 Export ,不过一旦注销什么的就废了。另外,翻墙的话不要用 bash ,很多高级功能搞不定的。
ryd994
2016-06-08 12:54:55 +08:00
@bdbai 不是
应该是 . ./a.sh 注意两个点之间的空格
第一个点等效于 source
dorentus
2016-06-08 12:57:55 +08:00
写在 .bashrc 里面:
alias proxyed = "env http_proxy=http://127.0.0.1:7777 $@"

用的时候加 proxyed 在任意命令前头:
proxyed curl http://ipecho.net/plain
dorentus
2016-06-08 12:58:38 +08:00
@dorentus man env 看详情
est
2016-06-08 12:59:19 +08:00
bash 真是弱爆了。执行一条命令,保持当前 shell 不退出,这个功能居然他妈做不到。有 hack 居然是用 bash_rc 去 hack 。。。

windows 下 cmd /k 这种。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/284307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX