変数を使えないプログラム言語はありません。ただ、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 ls
echo $(ls)
ローカル変数は、local
というキーワードを使って作成することができ
ます。
#!/bin/bash
HELLO=Hello
function hello {
local HELLO=World
echo $HELLO
}
echo $HELLO
hello
echo $HELLO
ローカル変数の使い方については、以上の例で充分かと思います。