我有一个脚本,当我在一个名为proxy.sh的代理后面运行时,它会自动设置各种代理设置,例如:
http_proxy=<PROXY>
https_proxy=<PROXY>
一旦我运行了这个脚本,如果它能自动拦截ruby gem
命令并添加代理信息,我会很高兴:
sudo gem install .....
=>sudo gem install --http-proxy=<PROXY> ....
一开始我想写一个别名,但我明白我需要真正制作一个函数?这是正确的吗?
我该如何处理?
如果我运行proxy.sh
,键入:sudo gem install TEST
将自动运行sudo gem install --http-proxy=<PROXY> TEST
您可以创建一个别名。在~/.bash_aliases
:中
alias sudo="sudo "
alias gemproxy="gem install --http-proxy=<PROXY>"
如果要将别名gemproxy
与sudo
一起使用,则sudo
别名(带空格)非常重要。
编辑:要拦截gem install
,您可以将其添加到您的.bash_aliases
:中
gem() {
if [[ $@ == install* ]]; then
arg=${@#"install "}
command gem install --http-proxy=PROXY $arg
fi
}
但有了这个,即使你不在代理后面,你也会一直导出代理。你可以添加一个验证,看看是否设置了环境变量http_proxy
。