シェル変数 【shell variable】
概要
シェル変数(shell variable)とは、UNIX系OSのシェルでコマンド操作時に代入あるいは参照できる変数。プログラミング言語の変数と同じように、値に名前を付けて保存し、後で内容の参照や更新を行うことができる。コマンドライン上でコマンド実行と同じ要領で「HOGE=foo」のように入力すると、HOGEという名前の変数が作成され、その値として文字列「foo」が代入される。参照時には「$HOGE」のように変数名の先頭に「$」を付ける。
「echo $HOGE」のようにechoコマンドと組み合わせて変数の値を表示できる。「set」コマンドで現在存在する変数の一覧を、「unset HOGE」のようにunsetコマンドで変数を消去することができる。「HOGE=`コマンド`」のように指定することで、コマンド文字列を実行した結果(標準出力)を格納できる。
シェル変数自体にデータ型の概念はなく、他のプログラミング言語でいうところの文字列型として扱われる。数値計算などを行いたい場合は「expr $HOGE」のようにexprコマンドと組み合わせることで数値として評価させることができる。
シェルスクリプト内でも変数として利用することができ、本格的なプログラムのように複雑な論理を記述するのに役立つ。ただし、通常の起動方法だと新たにシェルが起動されてスクリプトを読み込む形となるため、起動を指示したシェルから参照することはできない。sourceコマンドを用いて「source スクリプトファイル名」のように実行すると現在のシェルから参照できる。
シェル変数は現在実行しているシェル上でのみ有効であり、他のプログラムや新たに起動したシェルから参照することはできない。似た仕組みである「環境変数」(environment variable)はシステム全体で共有される変数であり、同じ変数名で他のシェルやプログラムと共通の内容を参照できる。
(2021.2.24更新)