ここでは,シェルの環境変数について学びます.
シェルに限らず,全てのプログラムは環境変数と呼ばれる変数をいろいろもっており,その変数に値を指定することにより,環境を変えることができます.
環境変数の一覧を見るには printenv コマンドを用います.
printenv MANPATH=/sw/share/man:/usr/X11R6/man:/usr/share/man TERM=xterm-color SHELL=/bin/bash SSH_CLIENT=210.170.217.128 54014 22 PERL5LIB=/sw/lib/perl5:/sw/lib/perl5 SSH_TTY=/dev/ttyp0 XAPPLRESDIR=/sw/etc/app-defaults/ http_proxy=http://ca:3128/ SGML_CATALOG_FILES=/sw/etc/sgml/catalog ..... .....
変数名の前に $ をつけることで特定の環境変数の値を参照することができます. echo コマンドのパラメータにすることでこの値を見ることができます.
echo $PATH /sw/lib/wrappers:/sw/fix-apple-x11/bin:/opt/ECC/bin:/opt/HWB/bin:/sw/bin:/sw/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin
さて,環境変数というのは何に用いるのでしょうか?
たとえば, LANG という環境変数は, デフォルトで用いる言語を設定するために用います. これに例えば, ja_JP.eucJP を設定すると日本語を日本語EUCで利用する設定になります.具体的にはプログラムの出力などが日本語になることでしょう.
環境変数は, シェルから起動したプログラムに引き継がれます.環境変数は,各プログラムの中から参照できるので,シェルで適切な環境変数を設定しておけば,そこから起動されたプログラムはその環境変数を用いて適切な動作をすることができるということです.
環境変数の設定には export というコマンドを用います.
export LANG=ja_JP.eucJP
シェルは各ターミナルウィンドウごとに走っていることに注意してください. 一つのシェルで環境変数を設定しても, 他のターミナルウィンドウのシェルの環境変数には影響がありません. ログインのたびにすべてのシェルで環境変数に特定の初期値を設定する方法は,28.5 初期設定ファイルのところで学びます.
よく用いる環境変数をいくつか書いておきましょう.
変数名 | 意味 | 関連項目 |
---|---|---|
HOME | ホームディレクトリの絶対パス名 | 13.4.5 ホームディレクトリ |
PATH | コマンドの検索パス | 13.4.12 実行ファイルのパス |
PRINTER | 標準で用いるプリンタ | |
EDITOR | 用いるエディタの種類 | |
PAGER | 用いるページャの種類 | 13.4.7 ファイル内容の表示 |
LANG | 用いる言語 | |
CLASSPATH | Java で用いるクラスファイルの検索パス |
環境変数と似たようなものにシェル変数というものがあります. シェル変数はその実行中のシェルのみに関係する変数で, シェルから起動したプログラムには影響を与えません, シェルの動作を変えたりする時に用いたり, あるいはシェルの情報を保持したりするのに用います.また,シェルスクリプトと呼ばれる小さなプログラムを書くときにも用います.
シェル変数の設定をするためには var=value とします.この場合,シェル変数 var に値 value が設定されます.シェル変数の参照も $ をつけることで実現できます.シェルが用いるシェル変数の名前は当然シェルによって異なりますが,例えば bash は PS1 という名前のシェル変数でプロンプトの設定を行います.
例えば, [g999999@hostname dirname] $ という形のプロンプトを使う場合には
PS1="[\u@\h \W]\\$ "
とします.
csh や tcsh においては環境変数を設定するコマンドは export ではなく setenv となります.
setenv LANG ja_JP.eucJP
として環境変数を設定します.
また,シェル変数の設定は set コマンドを用います.
set path=($path $HOME/bin)
csh や tcsh で用いられるシェル変数 path は,環境変数 PATH と連動します.
28.2 リダイレクション | 28.3 環境変数 | 28.4 エイリアス | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Mon, 14 Apr 2008 14:30:34 JST (473d) |