シェルスクリプト リファレンス & Tips  
トップ > 基本的な文法 > 変数について


→ 基本的な文法
→ サンプル & Tips
→ リンク集
変数について

変数への値の代入、変数の値の参照について説明します。



変数名に使える文字は、英数字と「 _ 」(アンダーバー)のみで、必ず英数字ではじめる必要があります。値を代入するには「=」で変数名と値を結びます。

また、変数の値を参照するには「$変数名」とします。

ファイル名 : test3.1.sh
1: #!/usr/bin/sh
2: var="テストです。"
3: echo $var

実行結果は以下のようになります。

1: $ chmod u+x test3.1.sh
2: $ test3.1.sh
3: テストです。

注意すべきは、「=」の前後に半角スペース等を入れてはいけないことです。ほかの言語であれば、前後のスペースは構わないことが多いですが、シェルスクリプトの場合には、ここら辺が厳しいです。

また、以下のような点にも注意が必要です。

  • 空白、タブ、改行などを含んだ値を代入するには、値を引用符で囲む。
  • 値の代入されていない変数は空文字となる。
  • 変数参照時に変数が誤解釈されそうな場合には「""」または「{ }」で変数名を囲む。
以下に例を示します。

ファイル名 : test3.2.sh
1: #!/usr/bin/sh
2: var1="これはvar1です。"
3: var10="これはvar10です。"
4: 
5: echo $var2
6: echo $var10
7: echo ${var1}0

実行結果は以下のようになります。

1: $ chmod u+x test3.2.sh
2: $ test3.2.sh
3:
4: これはvar10です。
5: これはvar1です。0

実行結果の3行目は、test3.2.shの5行目の結果で、値の代入されていない var2 という変数を参照しているため、空文字が返されています。

test3.2.shの「$var10」は $var1 と 0 の文字連結とも解釈できそうですが、実際には、実行結果の6行目のように $var10 に解釈されます。これを、正確に $var1 と 0 の文字連結と解釈させるには、test3.2.sh の 7行目のように ${var1}0 と変数を { } で囲みます。
また、これは「 "$var10" 」と書いても同じ結果になります。


まとめると以下のようになります。

変数名に使える文字
- 英数字と「 _ 」(アンダーバー)のみで、必ず英数字ではじめる

変数の代入
- 変数名=値

値の参照
- $変数名 or ${変数名} or "$変数名"

注意点
- 代入コマンド「=」の前後にスペースを入れない
- 空白、タブ、改行などを含んだ値を代入するには、値を引用符で囲む。
- 値の代入されていない変数は空文字となる。
- 変数参照時に変数が誤解釈されそうな場合には「""」または「{ }」で変数名を囲む。




お知らせ : このページへのリンク、雑誌等への紹介はすべて自由に行って結構です。 逆に、これらの許可申請のメールをいただいてもご返答はいたしません。ご了承ください。

注意 : Internet Explorer 4 以降のブラウザ のみ に対応しています。Netscapeでの表示確認は一切していません。ご了承ください。

このサイト及びページに関するお問い合わせは shell@rhythm-cafe.ocm までお願いします。



(C) 2001 rhythm-cafe.com All rights reserved.