LoginSignup
44
44

More than 5 years have passed since last update.

今さら聞けない!環境変数とシェル変数の違いと定義方法

Last updated at Posted at 2016-01-30

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

参考サイト

勉強になりました。ありがとうございました。

44
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
44