sudo gem 的别名 --代理<PROXY>还是 bash 函数?



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

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

编辑:要拦截gem install,您可以将其添加到您的.bash_aliases:中

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

但有了这个,即使你不在代理后面,你也会一直导出代理。你可以添加一个验证,看看是否设置了环境变量http_proxy

相关内容

最新更新