変数名=変数値変数値は省略する事ができ、その時変数にはヌル(空白)が定義されます。 変数を参照するには(変数を評価するには)、変数名の前にドル記号($)をつけます。 定義した変数の一覧は、引き数なしの set コマンドを用います。
| $ t=tanaka | # シェル変数の定義 |
| $ echo $t | # 変数値への置換 |
| tanaka | |
| $ echo ${t}ichirou | # 変数名の後に文字列を続けて表示 |
| tanakaichirou | |
| $ t2=$t | # 別のシェル変数に代入 |
| $ echo $t2 | |
| tanaka | |
| $ unset t | # 定義した変数の取り消し |
| $ echo "[$t][$t2]" | |
| [][tanaka] | # ない変数は NULL が返る |
| $ set | |
| CDAPATH=.:/usr/jsy/bin:/usr/bin | |
| CDPATH=.:/usr/users/yakoshi:/usr/users:/proj1/ycos1 | |
| CFLAGS=-g | |
| DISPLAY=:0 |
配列への値代入は set の配列オプション(A) を用います。
$ set -A arry one two tree
$ set |grep ^arry
arry[0]=one
arry[1]=two
arry[2]=tree
$ set -A arry zero ${arry[*]}
$ set |grep ^arry
arry[0]=zero
arry[1]=one
arry[2]=two
arry[3]=tree
$ arry[3]=three
$ set |grep ^arry
arry[0]=zero
arry[1]=one
arry[2]=two
arry[3]=three
${変数名 式 値}
| 式 | 意味 |
|---|---|
| val:-str | 変数 val が空の場合 str を返す |
| val:=str | 変数 val が空の場合 str を val に代入 |
| val:+str | 変数 val に値がある場合 str を返す |
| val:?"msg" | 変数 val が空の場合 msg を表示する。 |
| val#ptn | 変数 val について ptn と前方一致する部分の削除 ![]() |
| val%ptn | 変数 val について ptn と後方一致する部分の削除 ![]() |
例
$ unset a ; b="sore"
$ echo "${a:-xxx}/${b:-yyy}"
xxx/sore
$ a= ; b="hoge"
$ echo "${a:=aaa} ${b:=bbb}"
aaa hoge
$ echo $a $b
aaa hoge
$ a=
$ echo ${a:?"not set"}
a: not set
$ a=a/b/c ; b=a/b/c
$ echo ${a%/} ${b#/}
a/b b/c