别名为sudo gem --proxy <proxy>或bash函数?</proxy>

时间:2015-04-01 12:43:03

标签: ruby linux bash proxy

我有一个脚本,我在名为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

1 个答案:

答案 0 :(得分:3)

你可以做一个别名。在~/.bash_aliases

alias sudo="sudo "
alias gemproxy="gem install --http-proxy=<PROXY>"

如果您想将别名sudogemproxy一起使用,则sudo别名(带空格)非常重要。

编辑:拦截gem install,您可以在.bash_aliases中添加此内容:

gem() {
    if [[ $@ == install* ]]; then
        arg=${@#"install "}
        command gem install --http-proxy=PROXY $arg
    fi
}

但是,即使您不在其后面,也会始终导出代理。您可以添加验证以查看是否已设置环境变量http_proxy