Linuxでの環境変数の定義方法を調べていたら、環境変数に似たシェル変数というものを知りました。どうやら、指定方法も違ければ、利用できるスコープも違うとのこと。知らなかったよ。。。ということで、環境変数とシェル変数の違いについてまとめてみました。
環境変数とシェル変数の違い
シェル変数は現在実行中のシェルだけで有効な変数ですが,環境変数はシェルから実行したコマンドにも引き継がれる変数です。
再入門 体で覚えるLinuxの基本:ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20060620/241337/
環境変数とシェル変数の定義方法
シェル変数
-
$ HOGE=aiueo
このプロセス内で有効 -
$ HOGE=aiueo command
command実行中のみ有効。commandの前にセミコロンがないことに注意
環境変数
シェル変数に export をつけることで、環境変数となり、子プロセスでも利用できるようになる(変数はターミナルからログアウトもしくはexitするまで保持)
-
$ export HOGE=aiueo
なお$ HOGE=aiueo; export HOGE
でも同じ。
使用例)export LANG=ja_JP.eucJP
永続的に変数の値を設定変更したいのであれば、
環境変数をログインする度に手で入力することはありません。~/.bashrc や ~/.bash_profile といったファイルで export 文を上のように書いておけば良いのです。
引用元:https://linuxshugendo.wordpress.com/2013/12/26/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%A3%E3%81%A6%E4%BD%95%E3%81%AA%E3%81%AE%E3%81%95%EF%BC%9F/
また、Apache プロセスが利用する環境変数は、 SetEnv ディレクティブで設定できたりする。
http://httpd.apache.org/docs/2.0/ja/mod/mod_env.html#setenv
参考サイト
勉強になりました。ありがとうございました。
- Linux 環境変数有効範囲 - Qiita
- [シェル変数と環境変数の違いをコマンドラインで確認する - Qiita]
(http://qiita.com/kure/items/f76d8242b97280a247a1)