変数名=変数値変数値は省略する事ができ、その時変数にはヌル(空白)が定義されます。 変数を参照するには(変数を評価するには)、変数名の前にドル記号($)をつけます。 定義した変数の一覧は、引き数なしの set コマンドを用います。
$ t=tanaka | # シェル変数の定義 | |
$ echo $t | # 変数値への置換 | |
tanaka | ||
$ echo ${t}ichirou | # 変数名の後に文字列を続けて表示 | |
tanakaichirou | ||
$ t2=$t | # 別のシェル変数に代入 | |
$ echo $t2 | ||
tanaka | ||
$ unset t | # 定義した変数の取り消し | |
$ echo "[$t][$t2]" | ||
[][tanaka] | # ない変数は NULL が返る | |
$ set | ||
BASH=/bin/bash | ||
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") | ||
BASH_VERSION='2.05b.0(1)-release' | ||
COLORS=/etc/DIR_COLORS.xterm | ||
COLORTERM= | ||
COLUMNS=86 | ||
: |
$ arry=(one two tree) $ set |grep ^arry # 環境変数のうち arry で始まるものを表示 arry=([0]="one" [1]="two" [2]="tree") $ echo ${arry[1]} two配列の全要素を指定する場合は添字にアスタリスク(*)またはアットマーク(@)を用います。
$ arry=(zero ${arry[*]}) $ set |grep ^arry arry=([0]="zero" [1]="one" [2]="two" [3]="tree") $ arry[3]=three $ set |grep ^arry arry=([0]="zero" [1]="one" [2]="two" [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 と前方一致する全部分の削除 |
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%/*} ${a%%/*} ${b#*/} ${b##*/} a/b a b/c c
式 | 意味 |
---|---|
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 と前方一致する全部分の削除 |