web-dev-qa-db-ja.com

1つのコマンドのみでグローバルプロキシを設定および設定解除する方法

Xubuntuでapt-getのプロキシとグローバルプロキシを設定します ここのように ですが、コマンドは1つだけです。どうですか?このコードの問題は何ですか? ~/.functionsに保存し、. ~/.functionsファイルに.bashrc行を追加し、.bashrcファイルをリロードすると、7行目のEOFに関するエラーが表示されます。

正しいコード:

myproxy="http://proxy.server:port/"
proxyhost="proxy.server"
myport=port

# Set Proxy
function setproxy() {
    Sudo tee -a /etc/environment << EOF
    http_proxy="$myproxy"
    https_proxy="$myproxy"
    ftp_proxy="$myproxy"
    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    HTTP_PROXY="$myproxy"
    HTTPS_PROXY="$myproxy"
    FTP_PROXY="$myproxy"
    NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
EOF

    gsettings set org.gnome.system.proxy mode manual
    gsettings set org.gnome.system.proxy.http Host "$proxyhost"
    gsettings set org.gnome.system.proxy.http port "$myport"
    gsettings set org.gnome.system.proxy.https Host "$proxyhost"
    gsettings set org.gnome.system.proxy.https port "$myport"

    Sudo tee /etc/apt/apt.conf.d/95proxies << EOF
    Acquire::http::proxy "http://$proxyhost:$myport/";
    Acquire::ftp::proxy "ftp://$proxyhost:$myport/";
    Acquire::https::proxy "https://$proxyhost:$myport/";
EOF
}

#Unset Proxy
function unsetproxy() {
    Sudo rm /etc/environment
    Sudo tee /etc/environment << EOF
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EOF

    gsettings set org.gnome.system.proxy mode none

    Sudo rm /etc/apt/apt.conf.d/95proxies
}
1
Arturo

ヒアドキュメントを使用する場合、ヒアドキュメントの制限文字列(ここではEOF)は、その行に単独である必要があります。他には何も、スペースもインデントもありません。したがって、コードは次のようになります。

    Sudo tee /etc/apt/apt.conf.d/95proxies << EOF
    Acquire::http::proxy "http://$proxyhost:$myport/";
    Acquire::ftp::proxy "ftp://$proxyhost:$myport/";
    Acquire::https::proxy "https://$proxyhost:$myport/";
EOF
1
muru

少なくともシェルを再起動することなく、nothttp_proxyのようなグローバル環境変数を設定できます。次の3つのいずれかを実行できます。

  1. Bashセッションの変数を設定し、bashからインターネットアプリケーションを実行します。 http_proxy=8.8.8.8 ftp_proxy=8.8.8.8 firefox
  2. DEで変数を設定し(サポートしている場合)、DEでアプリケーションを起動します。
  3. ユーザーまたはシステム全体の変数を設定し、bashまたは再ログインを再起動します。 http_proxy=8.8.8.8 ftp_proxy=8.8.8.8 bash firefox exit

いずれも1つのコマンドとして起動されるスクリプトで実行できますが、最初に明確にする必要があるのは何ですか?

0
Barafu Albino