export コマンドはシェル変数を環境変数としてエクスポートするのに使用する。
あまり意識されていないかもしれないが、シェルにおいて環境変数を設定するためには、以下の2ステップが行われる必要がある。
1.シェル変数を設定する
2.そのシェル変数を環境変数としてエクスポートする
シェル変数を環境変数としてエクスポート
example1
$ TEST_VAL=thanks # シェル変数を設定する
$ echo "${TEST_VAL}"
thanks # シェル変数として値が表示される
$ printenv TEST_VAL # 環境変数としては設定されていないため、値は表示されない
$ export TEST_VAL # 環境変数としてエクスポートする
$ printenv TEST_VAL
thanks # 環境変数として値が表示される
シェル変数に値を入れる前に export しても大丈夫
example2
$ export TEST_VAL2 # シェル変数に値を入れる前に export
$ printenv TEST_VAL2 # 値は入っていないので何も表示されない
$ TEST_VAL2=thanks2 # そのシェル変数に値を設定
$ printenv TEST_VAL2 # 値が入っているので表示される
thanks2
複数(2つ以上)の環境変数を同時に設定
example3
$ TEST_VAL3=thanks3
$ TEST_VAL4=thanks4
$ export TEST_VAL3 TEST_VAL4
$ printenv TEST_VAL3 TEST_VAL4
thanks3
thanks4
export の取り消し(シェル変数も空にする)
example4
$ TEST_VAL5=thanks5
$ export TEST_VAL5
$ printenv TEST_VAL5
thanks5
$ unset TEST_VAL5 # unset コマンドで export の取り消し
$ printenv TEST_VAL5
$ echo "${TEST_VAL5}" # シェル変数も空になる
export の取り消し(シェル変数は残す)
example5
$ TEST_VAL6=thanks6
$ export TEST_VAL6
$ printenv TEST_VAL6
thanks6
$ export -n TEST_VAL6 # export -n コマンドで export の取り消し
$ printenv TEST_VAL6
$ echo "${TEST_VAL6}"
thanks6 # シェル変数としては値が残る
export されている変数の一覧を表示
export -p で表示される。
-p display a list of all exported variables and functions
example6(一部抜粋)
$ export -p
declare -x COLORTERM="truecolor"
declare -x CONDA_DEFAULT_ENV="base"
....
declare -x TEST_VAL="thanks"
declare -x TEST_VAL2="thanks2"
declare -x TEST_VAL3="thanks3"
declare -x TEST_VAL4="thanks4"
....
シェル変数設定と同時に export する
bash などのシェルでは、シェル変数の設定と同時に環境変数として export することが可能。
このやり方をよく見かける気がしますが、他のシェルとの互換性の観点では別々に分けた方がよいかもしれません。
example7
$ export TEST_VAL7=thanks7
$ echo ${TEST_VAL7}
thanks7
$ printenv TEST_VAL7
thanks7