Skip to content

Instantly share code, notes, and snippets.

@hell0again
Created February 20, 2015 01:59
Show Gist options
  • Save hell0again/121b36388e9ef849f756 to your computer and use it in GitHub Desktop.
Save hell0again/121b36388e9ef849f756 to your computer and use it in GitHub Desktop.
source実行時の環境変数をカレントシェルにexport奴
## 指定した名前の変数の値を得る
value_of() {
name=$1
eval echo "\${${name}}"
}
## 変数が定義済みかチェックする
## source内でexitするとシェルごとexitするよ
is_defined() {
name=$1
#value=$( eval echo "\${${name}}" )
value=$(value_of ${name})
if [ "${value}" = "" ]; then
echo "[ERROR] \${${name}} undefined"
return 1;
else
return 0;
fi
}
## 変数をexportしなおす。
## source実行時に渡した環境変数をexportしてシェル内で有効にするときに
reexport() {
name=$1
value=$2
eval "unset ${name}"
echo "export ${name}=${value}"
eval "export ${name}=${value}"
}
v="WITH_ENV"
is_defined ${v} && reexport ${v} $(value_of ${v}) || return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment