シェル変数

1.シェルが利用する主な変数

 シェルは様々な変数を利用して、環境や実行中のプロセスに関する情報を保持しています。以下は、主なシェル変数の一覧です。

変数名説明
$HOMEユーザーのホームディレクトリのパス
$USER/$LOGNAME現在のユーザー名
$PATHコマンドを検索するディレクトリのリスト
$SHELL現在のシェルのパス
$PWD現在の作業ディレクトリのパス
$PS1/$PS2プロンプトの設定
$LANG/$LC_*言語やロケールに関する設定
$UIDユーザーID
主なシェル変数の一覧

2.変数の設定

 変数は 「変数名=値」 の形式で設定します。変数名には大文字と小文字が区別されます。「=」の前後にスペースを入れないようにします。

# 変数の設定例
$ MY_VARIABLE="Hello, World"

3.変数の表示

変数の値を表示するには、「$」を使います。

# 変数の表示
$ echo $MY_VARIABLE

4.変数の大文字と小文字の区別

シェルは変数名の大文字と小文字を区別します。例えば、’my_variable‘ と ‘MY_VARIABLE‘ は異なる変数です。

$ my_variable="Lowercase"
$ MY_VARIABLE="Uppercase"

$ echo $my_variable   # 出力: Lowercase
$ echo $MY_VARIABLE   # 出力: Uppercase

これにより、異なる変数を同時に扱ったり、変数名を区別することが可能です。

5.特殊な変数

 シェルにはいくつかの特殊な変数もあります。これらは通常、シェル自体や実行中のスクリプトに関する情報を提供します。

  • $0: 実行されているプログラム(スクリプト)の名前。
  • $#: スクリプトに渡された引数の数。
  • $1, $2, …, $n: スクリプトに渡された引数。$1は最初の引数、$2は2番目の引数といった具体的な引数の値に対応します。
  • $?: 直前のコマンドの終了ステータス。0は成功、それ以外はエラーを表します。

6.環境変数

 環境変数はシェル環境全体で共有される変数で、プロセスが起動する際に引き継がれます。環境変数は通常、大文字で表記されます。

# 環境変数の設定例
$ export MY_ENV_VARIABLE="Environment Variable Value"

# 環境変数の表示例
& echo $MY_ENV_VARIABLE

7.変数の削除

unsetコマンドを使用して変数を削除することができます。

# 変数の削除例
$ unset MY_VARIABLE

8.変数の再代入

既存の変数に新しい値を代入することで、変数の値を更新できます。

# 変数の再代入例
$ MY_VARIABLE="New Value"

9.変数の有効範囲

 変数の内容は、シェルが終了すると失われます。また、変数は設定したシェルの中だけで有効です。

# 変数の有効範囲
$ var=infra-linux
$ echo $var  #変数varの内容を表示
infra-linux  #新しいサブシェルを起動
$ bash     #新しいサブシェルを起動
$ echo $var  #新しいサブシェルでvarの内容を表示
        #何も表示されない
$ exit    #サブシェルを終了
exit
$ echo $var
infra-linux #元のシェルでは、変数varの内容が表示される 

 これらの要素を組み合わせて、シェルスクリプトやコマンドラインの操作を柔軟に行うことができます。変数はシェルプログラミングにおいて重要な概念であり、効果的なコーディングやシステム管理に欠かせません。