このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】シェル変数・環境変数の削除:unsetコマンド

unset コマンドの概要

 unset コマンドは、シェル変数や環境変数を削除するために使用されます。変数が削除されると、その変数は未定義状態になり、シェル内やサブシェルでアクセスできなくなります。unset コマンドを使用することで、不要になった変数をメモリから解放することができます。

【構文】
unset 変数名

シェル変数の削除

以下の例では、シェル変数 MY_VAR を設定し、その後 unset コマンドで削除します。

コマンド解説
MY_VAR="Hello"シェル変数 MY_VAR を "Hello" に設定します。
echo $MY_VAR変数 MY_VAR の値を表示します(出力: Hello)。
unset MY_VAR変数 MY_VAR を削除します。
echo $MY_VAR変数 MY_VAR を再び参照しますが、削除されているため何も表示されません。
シェル変数の削除

環境変数の削除

以下の例では、環境変数 MY_ENV を設定し、その後 unset コマンドで削除します。

コマンド解説
export MY_ENV="World"環境変数 MY_ENV を "World" に設定します。
echo $MY_ENV環境変数 MY_ENV の値を表示します(出力: World)。
unset MY_ENV環境変数 MY_ENV を削除します。
echo $MY_ENV環境変数 MY_ENV を再び参照しますが、削除されているため何も表示されません。
環境変数の削除

複数変数の削除

以下の例では、複数の変数 VAR1VAR2 を設定し、両方を unset コマンドで削除します。

コマンド解説
VAR1="Hello"シェル変数 VAR1 を "Hello" に設定します。
VAR2="World"シェル変数 VAR2 を "World" に設定します。
echo $VAR1 $VAR2変数 VAR1VAR2 の値を表示します(出力: Hello World)。
unset VAR1 VAR2変数 VAR1VAR2 を削除します。
echo $VAR1 $VAR2変数 VAR1VAR2 を再び参照しますが、何も表示されません。
複数変数の削除

注意点

  • unset コマンドは、一度に複数の変数を削除することができます。
  • 環境変数を削除すると、その変数は現在のシェルセッションおよびその子プロセスで利用できなくなります。

コマンドの使用例と解説

1.シェル変数を削除する。

以下のコマンドを実行します。

  • myShellVar="This is a shell variable"」コマンド
  • echo $myShellVar」コマンド
  • unset myShellVar」コマンド
  • echo $myShellVar」コマンド
# シェル変数を定義
user01@ubuntu-vm:~$ myShellVar="This is a shell variable"

# シェル変数の値を表示
user01@ubuntu-vm:~$ echo $myShellVar
This is a shell variable

# シェル変数を削除
user01@ubuntu-vm:~$ unset myShellVar

# シェル変数を表示(削除されているため何も表示されない)
user01@ubuntu-vm:~$ echo $myShellVar

 この例では、まず myShellVar というシェル変数を定義し、その値を表示しています。その後、unset コマンドを使用して myShellVar を削除し、再度変数を表示しようとすると、何も表示されません。これは、変数が削除されて未定義状態になったためです。

2.環境変数を削除する。

以下のコマンドを実行します。

  • export myEnvVar="This is an environment variable"」コマンド
  • echo $myEnvVar」コマンド
  • unset myEnvVar」コマンド
  • echo $myEnvVar」コマンド
# 環境変数を定義
export myEnvVar="This is an environment variable"

# 環境変数の値を表示
user01@ubuntu-vm:~$ echo $myEnvVar
This is an environment variable

# 環境変数を削除
user01@ubuntu-vm:~$ unset myEnvVar

# 環境変数を表示(削除されているため何も表示されない)
user01@ubuntu-vm:~$ echo $myEnvVar

 この例では、export コマンドを使用して myEnvVar という環境変数を定義し、その値を表示しています。その後、unset コマンドを使用して myEnvVar を削除し、再度変数を表示しようとすると、何も表示されません。これは、環境変数が削除されて未定義状態になったためです。

3.存在しない変数を削除しようとする。

以下のコマンドを実行します。

  • unset nonExistentVar」コマンド
# 存在しない変数を削除
user01@ubuntu-vm:~$ unset nonExistentVar

 存在しない変数を unset コマンドで削除しようとしても、エラーメッセージは表示されません。unset コマンドは指定された変数が存在しない場合でも静かに処理を終了します。

まとめ

 unset コマンドは、シェル変数や環境変数を削除するための便利なツールです。不要になった変数をメモリから解放し、未定義状態にすることで、変数の再利用や誤ったアクセスを防ぐことができます。上記の使用例と解説を参考にして、unset コマンドを効果的に活用してください。