13,190
回編集
(ページの作成:「== 概要 == <br><br> == 文字列の連結 == 複数の変数を連結するには、以下のように続けて記述する。<br> <source lang="sh"> #!/bin/sh S…」) |
編集の要約なし |
||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
<br><br> | |||
== 変数の定義と参照 == | |||
変数へ値を代入する時は$を付けず、変数を参照するときは$を付ける。<br> | |||
<source lang="sh"> | |||
#!/bin/sh | |||
name=Michael # 変数の定義 | |||
echo Hello $name # 変数の参照 | |||
echo "Hello $name" # ダブルクォーテーションは変数を展開する | |||
echo 'Hello $name' # シングルクォーテーションは変数を展開しない | |||
</source> | |||
<br> | |||
# 出力 | |||
Hello Michael | |||
Hello Michael | |||
Hello $name | |||
<br> | |||
未定義の変数を参照すると、空文字列と同様に扱われる。(エラーにはならない)<br> | |||
<source lang="sh"> | |||
#!/bin/sh | |||
echo "Hello $name !" | |||
</source> | |||
<br> | |||
# 出力 | |||
Hello ! | |||
<br><br> | |||
== 定数 == | |||
以下のように実行すると、指定した変数や関数に対する代入、<code>unset</code>ができなくなる。<br> | |||
<source lang="sh"> | |||
readonly var # 変数varをreadonlyにする | |||
readonly -a arr # 配列arrをreadonlyにする | |||
readonly -f func # 関数funcをreadonlyにする | |||
</source> | |||
<br> | |||
以下のように、変数の定義と同時にreadonlyを指定することも可能である。<br> | |||
<source lang="sh"> | |||
readonly USERNAME="Mike" | |||
</source> | |||
<br> | |||
以下の例では、変数MAX_SIZEを100で初期化した後、200という値を代入しようとしている。<br> | |||
変数MAX_SIZEは定数化されているので、代入しようとした場合はエラーになる。<br> | |||
<source lang="sh"> | |||
#!/bin/bash | |||
readonly MAX_SIZE=100 | |||
MAX_SIZE=200 | |||
</source> | |||
<br> | |||
# 出力 | |||
./sample.sh: 行 4: MAX_SIZE: 読み取り専用の変数です | |||
<br><br> | |||
== 変数の値の確認 == | |||
<code>test</code>や<code>[ ... ]</code>で使用できる演算子には、以下のようなものがある。<br> | |||
* -z 文字列 | |||
*: 文字列の長さが0の場合に真 | |||
* -n 文字列 | |||
*: 文字列の長さが0でない場合に真 | |||
<br> | |||
変数名にダブルクォーテーションを付けて値を展開して、上記の演算子でその文字列の長さをチェックすることにより、<br> | |||
変数に値が代入されている(または、代入されていない)ことを確認することができる。<br> | |||
<br> | |||
==== 変数に値が代入されていることを確認する ==== | |||
以下の例では、変数NAMEの値がセットされているか調べている。<br> | |||
<source lang="sh"> | |||
#!/bin/bash | |||
if [ -n "$NAME" ]; then | |||
echo $NAME | |||
fi | |||
</source> | |||
<br> | |||
==== 変数に値が代入されていないことを確認する ==== | |||
以下の例では、変数NAMEの値がセットされていないか調べている。<br> | |||
<source lang="sh"> | |||
#!/bin/bash | |||
if [ -z "$NAME" ]; then | |||
echo 'NAME is not set' | |||
fi | |||
</source> | |||
<br> | |||
# 出力 | |||
NAME is not set | |||
<br><br> | <br><br> | ||