Bashスクリプト - ローカル環境変数の設定(プロキシ)

Bashスクリプト - ローカル環境変数の設定(プロキシ)

作ろう2スクリプト。 1 つはローカル環境変数の設定に使用され、もう 1 つはローカル環境変数の設定解除に使用されます。

まず、両方のスクリプトは次のコマンドを使用して生成されます。

touch set-proxy.sh touch unset-proxy.sh

その後、両方を実行可能にしました。

chmod 700 set-proxy.sh chmod 700 unset-proxy.sh

次にファイルに入り、次のように入力しましたset-proxy.sh

#!/bin/bash

`export HTTP_PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTPS_PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTP-PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTPS-PROXY=http://nick:nick@proxy.***.***.com:****`
`export http_proxy=http://nick:nick@proxy.***.***.com:****`
`export https_proxy=http://nick:nick@proxy.***.***.com:****`
`export http-proxy=http://nick:nick@proxy.***.***.com:****`
`export https-proxy=http://nick:nick@proxy.***.***.com:****`

次にファイルに入り、次のように入力しましたunset-proxy.sh

#!/bin/bash

`unset HTTP_PROXY`
`unset HTTPS_PROXY`
`unset HTTP-PROXY`
`unset HTTPS-PROXY`
`unset http_proxy`
`unset https_proxy`
`unset http-proxy`
`unset https-proxy`

すべてのプロキシ設定をオフにして設定する簡単な方法が本当に必要です。 2つのスクリプトを作成するのが最も簡単な方法だと思います。

ただし、実行または./unset-proxy.sh./set-proxy.shのエラー メッセージが表示された場合:

./unset-proxy: line 5: unset: `HTTP-PROXY': not a valid identifier
./unset-proxy: line 6: unset: `HTTPS-PROXY': not a valid identifier
./unset-proxy: line 9: unset: `http-proxy': not a valid identifier
./unset-proxy: line 10: unset: `https-proxy': not a valid identifier

(それから私も同じ結果を得ますset-proxy.sh)。

誰もが私が間違っている部分とそれを修正する方法について正しい方向を教えてくれたら、とても感謝します。ありがとうございます。

答え1

これにはいくつかのエラーがあるようです。まず、変数代入式はバックティック内ではありません。バックティックは(やや古い)構文です。コマンドの置き換え。私の考えでは、あなたが望むものアポストロフィ参照変数これは文字列リテラルを保存し、エラーを防ぐために行われます。パラメータの置換

また、変数名にハイフンを使用することはできません。これはから抜粋したものです。Bashマニュアル、第2章:定義:

名前

文字、数字、下線のみで構成され、文字または下線で始まる単語です。名前はシェル変数と関数名として使用されます。また〜として知られています識別子

詳しくは、次の投稿もご覧ください。

バックティックとハイフンを削除すると、スクリプトは次のようになります。

#!/bin/bash
# set_proxy.sh

export HTTP_PROXY='http://nick:nick@proxy.***.***.com:****'
export HTTPS_PROXY='http://nick:nick@proxy.***.***.com:****'
export http_proxy='http://nick:nick@proxy.***.***.com:****'
export https_proxy='http://nick:nick@proxy.***.***.com:****'

そして:

#!/bin/bash
# unset_proxy.sh

unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy

最後の注意:スクリプトを実行するとサブシェルで実行されるため、環境変数はアクティブなシェルセッションに影響を与えません。たとえば、次の投稿をご覧ください。

短い答えはできないということです。したがって、スクリプトが現在のシェル環境を変更できるようにするには、それを「インポート」する必要があります。たとえば、次のようになります。

source set_proxy.sh

source unset_proxy.sh

関連情報