書式 | 説明 |
---|---|
${value} | 変数valueの値を展開 |
${value:-hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開 |
${value:=hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開し更にvalueに代入 |
${value:?hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開し更に標準エラー出力 |
${value:+hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合は空文字として処理 |
${value:offset} | 変数valueの値を展開する際、offsetの位置から展開 |
${value:offset:length} | 変数valueの値を展開する際、offsetの位置から最大length文字分を展開 |
${!hoge*} ${!hoge@} | hogeで始まる全ての変数を、特殊変数IFSの最初の文字(デフォルト空白)で区切って展開 |
${hoge[*]} ${!hoge[@]} | hogeが配列変数であれば、配列hogeの値のリストを展開。hogeが配列でない場合、hogeの値に展開 |
${!hoge[*]} ${!hoge[@]} | hogeが配列変数であれば、配列hogeのキーリストを展開。hogeが配列でない場合、空文字として展開 |
${#hoge} ${#hoge[*]} ${#hoge[@]} | 文字列数、要素数を出力 |
${hoge#word} ${hoge##word} | hogeを展開し、前方からwordに一致した分まで削除して出力、#は最初にマッチした部分までで、##は最後にマッチした部分まで削除 |
${hoge%word} ${hoge%%word} | hogeを展開し、後方からwordに一致した分まで削除して出力、%は最初にマッチした部分までで、%%は最後にマッチした部分まで削除 |
${hoge/pattern/word} | hogeを展開し、patternに一致した最後の部分までをwordに置換してから出力 |
補記事項
配列の代入と展開結果例
$ value=([0]="zero" [1]="one" [2]="two" [3]="three") $ echo $value zero $ echo ${value[1]} one $ echo ${value[*]} zero one two three $ echo ${!value[*]} 0 1 2 3 $ value=(["z"]="zero" ["o"]="one" ["tw"]="two" ["th"]="three") $ echo ${!value[*]} z o tw th