変数の定義と参照
変数へ値を代入するときは $ を付けず、変数を参照するときは $ を付けます。
#!/bin/sh
name=Michael # 変数の定義
echo Hello $name # 変数の参照
echo "Hello $name" # ダブルクォーテーションは変数を展開する
echo 'Hello $name' # シングルクォーテーションは変数を展開しない$ ./sample.sh
Hello Michael
Hello Michael
Hello $name
定義していない変数は空文字と同じ
未定義の変数を参照すると、空文字列と同様に扱われます。 エラーにはなりません。
#!/bin/sh
echo "Hello $name !"$ ./sample.sh
Hello !
“=” の前後にスペースは入れちゃだめ!
変数定義の = の前後にはスペースを入れてはいけません。
スペースを入れると、変数名の部分がシェル上で実行可能なコマンドとして認識されてしまいます。
例えば、以下のようにすると、value というコマンドを、引数 "= hello" で実行すると解釈されてしまいます。
value = helloさらに、以下のように、"=" の後ろだけにスペースを入れると…
value= helloこれは、変数 value を空にした状態で、コマンド hello を呼び出すと解釈されてしまいます。