シェル変数と環境変数
シェルスクリプトやコマンドライン操作において、変数は非常に重要な役割を果たします。LinuxやUNIX系システムでは、シェル変数と環境変数の2種類の変数がよく使われます。これらの変数は、シェル内での設定情報やシステム全体に影響を与える設定を保持し、ユーザーやプロセスがシステムを効率的に利用するための基盤となります。
シェル変数は、現在のシェルセッション内でのみ有効な変数であり、シェルスクリプトや一時的な設定に使用されます。一方、環境変数は、システム全体に影響を与える設定を保持し、親プロセスから子プロセスへと引き継がれるため、システムの動作やソフトウェアの挙動に広範囲に影響します。
ここでは、シェル変数と環境変数の違い、利用方法、そしてそれぞれがどのように役立つかについて解説していきます。
シェル変数とは
シェル変数は、シェル(コマンドラインインターフェース)で使用される一時的なデータ保存用の名前付きストレージです。シェル変数は、ユーザーがスクリプトやコマンドを実行する際に、情報を格納して再利用するために使用されます。
変数の定義
シェル変数は以下の形式で定義されます。
【定義】変数名=値
例:
myvar="Hello, World!"
変数名に使える文字
シェル変数名には以下のルールがあります。
- 英大文字と小文字を区別します(case-sensitive)
- 文字(A-Z, a-z)、数字(0-9)、およびアンダースコア(_)を含めることができます
- 変数名は文字で始めなければなりません(数字では始められません)
例:
- 有効な変数名:
VAR1
,my_var
,_temp
- 無効な変数名:
1var
,my-var
変数の呼び出し
変数の値を呼び出すには、変数名の前に「$」記号を付けます。
echo $myvar
Hello, World!
上記の例では、「Hello, World!」が表示されます。
シェル変数と環境変数の用途
シェル変数には以下の2つの主要な用途があります。
- シェル変数: 現在のシェルセッションでのみ有効な変数
- 環境変数: シェルから起動されるすべての子プロセスに継承される変数
主な環境変数
環境変数 | 説明 |
---|---|
PATH | コマンドを検索するディレクトリのリスト。システムが実行可能ファイルを探す場所を指定します。 |
HOME | ユーザーのホームディレクトリのパス。 |
USER | 現在のログインユーザー名。 |
SHELL | デフォルトのシェルプログラムのパス。 |
PWD | 現在の作業ディレクトリのパス。 |
LANG | デフォルトのシステムロケール設定。 |
EDITOR | デフォルトのテキストエディタ。 |
LOGNAME | ユーザーのログイン名。 |
例:環境変数の設定
環境変数は以下のように設定できます。
export VAR_NAME=value
例:
export PATH=$PATH:/new/path
これにより、PATH
環境変数に新しいパスが追加されます。