Corredor

ウェブ、プログラミングの勉強メモ。

環境変数の追加・削除をトグル切替できる Bash 関数を書いた

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

とある理由で Bash 上の HTTP_PROXY 環境変数を頻繁に追加したり削除したりする必要が出たので、

  • HTTP_PROXY 環境変数が存在したら削除 (unset) する
  • HTTP_PROXY 環境変数が存在しなかったら追加 (export) する

というトグル切替ができる Bash 関数を書いた。

以下の関数を ~/.bash_profile 内に書いておく。

# プロキシ設定切替 : Toggle Proxy
toggleProxy() {
  # 環境変数一覧から HTTP_PROXY の存在チェックをする
  env | grep HTTP_PROXY > /dev/null
  if [ $? = 0 ]; then
    echo プロキシ環境変数設定済・unset する
    unset http_proxy
    unset HTTP_PROXY
    unset https_proxy
    unset HTTPS_PROXY
  else
    echo プロキシ環境変数未設定・export する
    export http_proxy=http://example.com
    export HTTP_PROXY=$http_proxy
    export https_proxy=$http_proxy
    export HTTPS_PROXY=$http_proxy
    # 設定確認用
    env | grep -i PROXY
  fi
}

本来、環境変数は大文字・小文字の区別がないらしいが、まれにケースセンシティブなプログラムもあったりするので、大文字・小文字両方の環境変数を用意している。