シェルスクリプトも簡易的なものではありますが一種のプログラム言語であり、C言語やVisualBasicなどの言語と同じように変数を定義することもできます。

シェルスクリプトでの変数のことをシェル変数と言います。

シェル変数にはシェルの動作環境を設定するためのあらかじめ定義されている変数と自分で新たに定義する変数があります。

まず一度、setコマンドを実行してください。

$ set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")
BASH_VERSION='3.2.25(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=90
CVS_RSH=ssh
DIRSTACK=()
EUID=500
GROUPS=()
G_BROKEN_FILENAMES=1

~ 省略 ~

setコマンドを実行すると上記のように、いろいろ表示されると思います。
この表示された一行一行がシェル変数になります。

次に、シェル変数を新たに定義してみましょう。

$ hensu01=Hello

これで変数定義は完了です。
意味としては、「hensu01という変数に、Helloという値を代入する」となります。

では、今の変数が本当にシェル変数として定義されているかsetコマンドで確認してみましょう。

$ set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" [5]="i686-redhat-linux-gnu")
BASH_VERSION='3.2.25(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=90
CVS_RSH=ssh
DIRSTACK=()
EUID=500
GROUPS=()
G_BROKEN_FILENAMES=1

~ 省略 ~

hensu01=Hello
tmpid=500
~ 省略 ~

変数「hensu01」が表示されているかと思います。

では次に今定義した変数を削除してみましょう。

$ unset hensu01

これでもう一度setコマンドを実行すると変数「hensu01」は表示されないはずです。

なお、シェル変数はシェルごとに定義されます。別のシェルを起動すると、シェル変数は引き継がれません。シェル変数を引き継ぐには、Bシェルならexport、Cシェルならsetenvを使います。