このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習30

新Linuxコマンド演習30 概要
「新Linuxコマンド演習30」では、シェル変数(Shell Variable) の基本的な仕組みと使い方を学びます。
シェル変数とは、シェル内で一時的に値を保持するための記憶領域です。
これを使うことで、コマンドの結果を一時的に保存したり、スクリプト内でデータを受け渡したりすることができます。
この演習では、変数の設定・参照・再代入・削除・有効範囲(スコープ)を実際に操作しながら確認します。

シェル変数の基本
| 操作 | コマンド例 | 説明 |
|---|---|---|
| 変数の設定 | var=値 | シェル変数を作成し、値を代入する。空白を入れてはいけない。 |
| 変数の参照 | echo $var | 変数の内容を参照して表示する。 |
| 変数の再代入 | var=新しい値 | 変数の内容を上書きする。 |
| 変数の削除 | unset var | 指定した変数を削除する。 |
| 有効範囲の確認 | bash / exit | サブシェルを起動して、変数のスコープを確認する。 |
この表のように、シェル変数は非常に基本的ですが、シェルスクリプトや日常操作の中で頻繁に使われる重要な要素です。
演習問題+模範解答例
演習01:シェル変数を設定する
問題
シェル変数 var に文字列 infra-linux を代入し、その値を表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ var=infra-linux
[suzuki@AlmaLinux ~]$ echo $var
infra-linux解説
- 変数は 変数名=値 の形式で設定します。
- 「=」の前後にスペースを入れるとエラーになるので注意しましょう。
$を付けることで変数の値を参照できます。
演習02:シェル変数名の大文字・小文字の違いを確認する
問題
変数 VAR に INFRA-LINUX を代入し、var との違いを確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ VAR=INFRA-LINUX
[suzuki@AlmaLinux ~]$ echo $var
infra-linux
[suzuki@AlmaLinux ~]$ echo $VAR
INFRA-LINUX解説
- Linuxのシェルでは 変数名の大文字と小文字は区別 されます。
- var と VAR は別々の変数として扱われます。
演習03:変数の再代入
問題
変数 var に新しい値 Alma を代入し、結果を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ var=Alma
[suzuki@AlmaLinux ~]$ echo $var
Alma解説
- すでに定義済みの変数に別の値を代入すると、元の値が上書きされます。
- 新しい値をセットすることで動的に内容を変更できます。
演習04:シェル変数の削除
問題
変数 var を削除し、削除後に値を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ unset var
[suzuki@AlmaLinux ~]$ echo $var解説
- unset コマンドを使用すると、指定した変数が削除されます。
- 削除後に $var を参照しても何も表示されません。
演習05:シェル変数の有効範囲を確認する
問題
変数 var に infra-linux を代入し、サブシェルでの有効範囲を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ var=infra-linux
[suzuki@AlmaLinux ~]$ echo $var
infra-linux
[suzuki@AlmaLinux ~]$ bash
[suzuki@AlmaLinux ~]$ echo $var
[suzuki@AlmaLinux ~]$ exit
exit
[suzuki@AlmaLinux ~]$ echo $var
infra-linux解説
- シェル変数は、定義したシェル(プロセス)内でのみ有効 です。
- 新しく起動したサブシェル(bash)では、親シェルで設定した変数は引き継がれません。
- サブシェルから戻る(exit)と、親シェルの変数が再び利用できます。
まとめ
「新Linuxコマンド演習30」では、
- シェル変数の設定・参照・上書き・削除
- 変数名の大文字・小文字の区別
- 変数の有効範囲(スコープ)
について学びました。
シェル変数は、一時的なデータの保持やスクリプト間の情報共有に欠かせない要素です。
次のステップでは、これを拡張した「環境変数(export)」について理解を深めていきましょう。
