我有一个脚本,我在名为proxy.sh的代理后面运行,它自动设置各种代理设置,例如:
http_proxy=<PROXY>
https_proxy=<PROXY>
一旦我运行这个脚本,我很乐意,如果它可以自动拦截ruby gem
命令并添加代理信息:
sudo gem install .....
=&gt; sudo gem install --http-proxy=<PROXY> ....
起初我想写一个别名,但我明白我需要实际创建一个函数?这是对的吗?
我该如何处理?
如果我运行proxy.sh
打字:sudo gem install TEST
会自动运行sudo gem install --http-proxy=<PROXY> TEST
答案 0 :(得分:3)
你可以做一个别名。在~/.bash_aliases
:
alias sudo="sudo "
alias gemproxy="gem install --http-proxy=<PROXY>"
如果您想将别名sudo
与gemproxy
一起使用,则sudo
别名(带空格)非常重要。
编辑:拦截gem install
,您可以在.bash_aliases
中添加此内容:
gem() {
if [[ $@ == install* ]]; then
arg=${@#"install "}
command gem install --http-proxy=PROXY $arg
fi
}
但是,即使您不在其后面,也会始终导出代理。您可以添加验证以查看是否已设置环境变量http_proxy
。