【初心者向け解説】シェル変数と環境変数
シェルとは
シェルはユーザーと Linux システムの対話をつかさどります。そのためには、ユーザーのホームディレクトリやログイン名など、ユーザーに関する情報を保持していなければなりません。 Linux ではこのような情報は変数に保存されます。変数は、その有効範囲(スコープ)によって、シェル変数と環境変数に分けられます。
シェル変数
シェル変数の有効範囲は、その変数を定義したシェル・プロセスのみになります。当該のシェルプロセスを終了するとシェル変数は失われます。 別のシェルを新しく起動した 場合は、新しいシェルから元のシェルで定義した内容を参照することはできません。
環境変数
環境変数は、 その変数を定義したシェル上、及びそのシェルで実行されるプログラムにも引き継がれる変数です。環境変数は、シェル変数をexportコマンドでエクスポートすることによって設定します。
下記によく利用される環境変数を記載します。
環境変数 | 説明 |
---|---|
EDITOR | デフォルトのエディタのパス |
HISTFILE | コマンド履歴を格納するファイル |
HISTFILESIZE | HISTFILEに保存する履歴数 |
HISTSIZE | コマンド履歴の最大数 |
HOME | カレントユーザのホームディレクトリ |
HOSTNAME | ホスト名 |
LANG | ロケール |
LOGNAME | ログインシェルのユーザ名 |
PATH | コマンドやプログラムを検索するディレクトリリスト |
PS1 | プロンプトの表示文字列 |
PS2 | 複数行にわたる入力時のプロンプト |
PWD | カレントディレクトリ |
TERM | 端末の種類 |
USER | 現在のユーザー |
変数を定義する書式は次のとおりです。
変数名=値
この時「=」 の前後にスペースが入らないように注意して下さい。変数名には英字、数字、アンダーバー(_)を使うことができますが、先頭の文字に数字を使うことはできません。大文字と小文字は区別されます。値にスペースなどが入っている場合は二重引用符「”」もしくは単一引用符「’」で囲みます。
定義された変数は echoコマンドを使って参照できます。echoコマンドは指定した文字列や変数の値を出力します。変数を参照する場合は、変数名の先頭に「$」をつけますコマンドの書式は次のとおりです。
echo [文字列または$変数名]
例えばechoコマンドに文字列 Linux を指定すると次のように実行されます。
echoコマンドに変数 lpi を指定すると、変数の内容が表示されます。
変数を削除するためにはunsetコマンド使います。 このとき変数名の先頭には「$」記号を付けません。unsetコマンドの書式は次のとおりです。
unset 変数名
先ほどセットした変数 lpi を削除するには次のように実行します。
定義されている環境変数を一覧表示するにはenvコマンドやprintenvコマンドを使います。また、環境変数とシェル変数を両方表示したい場合は set コマンドを使います。
シェル変数は新たに起動したシェルから参照することはできませんが、 export コマンドでエクスポートすることによって参照できるようになります。 export コマンドの書式は次のとおりです。この場合も変数名の頭に「$」記号はつけません。
export 変数名[=値]
最後に
変数の定義方法と参照方法をまとめます。定義する際には、変数名の先頭に「$」記号は不要であり、参照する際には「$」記号が必要です。
✕ | $VAR=linux |
〇 | VAR=linux |
✕ | echo VAR |
〇 | echo $VAR |
-
前の記事
【初心者向け解説】ディレクトリの指定 2021.09.22
-
次の記事
【初心者向け解説】環境変数PATH 2021.10.01