このページで解説している内容は、以下の 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 を再び参照しますが、削除されているため何も表示されません。 |
複数変数の削除
以下の例では、複数の変数 VAR1
と VAR2
を設定し、両方を unset
コマンドで削除します。
コマンド | 解説 |
---|---|
VAR1="Hello" | シェル変数 VAR1 を "Hello" に設定します。 |
VAR2="World" | シェル変数 VAR2 を "World" に設定します。 |
echo $VAR1 $VAR2 | 変数 VAR1 と VAR2 の値を表示します(出力: Hello World)。 |
unset VAR1 VAR2 | 変数 VAR1 と VAR2 を削除します。 |
echo $VAR1 $VAR2 | 変数 VAR1 と VAR2 を再び参照しますが、何も表示されません。 |
注意点
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
コマンドを効果的に活用してください。