set-proxy.sh を実行してもターミナルが変わらない理由
実行したスクリプトは変数を親シェルへエクスポートできません。現在のシェルで設定を保持したい場合は、信頼できる設定ファイルを source してください。
スクリプトには正しい export https_proxy=... の行があります。それを実行しても、次のコマンドは依然として古い proxy を見ています。スクリプト自体は自分のプロセス内で完璧に動いていたのかもしれません。
スクリプトの実行は別のシェルを起動します。そのシェルは自分が起動したコマンドに変数を渡せますが、終了後に親のターミナルシェルの環境を置き換えることはできません。
./set-proxy.sh
. ./set-proxy.sh
これは別の操作です。後者はシェルの dot ビルトインを使い、現在のシェルでファイルを読み込みます。Bash ではこれを source とも呼びます。ビルトインのリファレンスを参照してください。
source するのは信頼できるファイルだけにしてください。そのすべてのシェルコマンドが、その現在のコンテキストで実行されるからです。proxy がスクリプト内のコマンドだけに必要な場合は、通常の実行が正しい境界です。単一の外部コマンドには、コマンド単位の proxy 割り当てを使えば現在のシェルを変更せずに済みます。
変数の割り当てはリテラルのままにしてください。バッククォートは引用ではなくコマンド置換を意味します。proxy を割り当てる行が、誤ってその URL を実行しようとしてはいけません。公開エンドポイントを選ぶための値については、無料 proxy リストが、プロトコルがクライアントと一致しなければならない候補を提供します。最後に、実際のネットワーククライアントが読む変数名を確認してください。シェルのスコープを直しても、サポートされていない変数が有効になるわけではありません。