変数を使えないプログラム言語はありません。ただ、bash にはデータ
型(data type)がありません。bash の変数は、数字、文字、文字列を格納
することができます。
変数を宣言する必要はなく、参照すべき変数に値を代入すれば、それだけで 作成できます。
        #!/bin/bash
        STR="Hello World!"
        echo $STR
        
2 行目で STR という変数を作って、それに "Hello World" とい
う文字列を代入しています。この変数の「値」は変数の最初に "$" を置く
ことで取り出せます。
もし "$" という記号を使わなかったらプログラムの出力は違うものとな
り、望んだ結果を得られないということを理解して(あるいは実際にやってみて)くだ
さい。
        #!/bin/bash          
        OF=/var/my-backup-$(date +%Y%m%d).tgz
        tar -cZf $OF /home/me/
        
上記のスクリプトは、今までとは少し違うことを紹介しています。まず二行目にある
変数の作成と代入についてはもう慣れたと思います。
では、"$(date +%Y%m%d)" という表現に注目してください。
スクリプトを実行すると、丸カッコのなかのコマンドが実行されて、その出力が
取り込まれるようになっています。
このスクリプトでは、date コマンドの(+%Y%m%d)という書式スイッチに従っ
て、出力されるファイル名が毎日変わることに注意してください。違った書式を指定
することで、これとは異なるファイル名にすることもできます。
それ以外の参考事例として、
echo lsecho $(ls)
ローカル変数は、local というキーワードを使って作成することができ
ます。
        #!/bin/bash
        HELLO=Hello 
        function hello {
                local HELLO=World
                echo $HELLO
        }
        echo $HELLO
        hello
        echo $HELLO
        
ローカル変数の使い方については、以上の例で充分かと思います。