13,183
回編集
| 29行目: | 29行目: | ||
Hello ! | Hello ! | ||
<br> | <br> | ||
変数の内容の一部を取得する場合は、<code>${変数名:開始位置:長さ}</code>と指定する。 | 変数の内容の一部を取得する場合は、<code>${変数名:開始位置:長さ}</code>と指定する。<br> | ||
なお、先頭の開始位置は0である。 | なお、先頭の開始位置は0である。<br> | ||
<br> | |||
指定した文字列までを削除する場合、<code>${変数名#文字列}</code>と指定する。 | 指定した文字列までを削除する場合、<code>${変数名#文字列}</code>と指定する。<br> | ||
文字列を後ろから削除する場合、<code>${変数名%文字列}</code>と指定する。 | 文字列を後ろから削除する場合、<code>${変数名%文字列}</code>と指定する。<br> | ||
また、文字列の指定には、ワイルドカード*が使用できる。 | また、文字列の指定には、ワイルドカード*が使用できる。<br> | ||
<br> | |||
以下の例では、(1)環境変数LANGの0文字目から5文字分のみ取得、(2).(ドット)文字までを削除、(3).(ドット)文字以降を削除を行っている。 | 以下の例では、(1)環境変数LANGの0文字目から5文字分のみ取得、(2).(ドット)文字までを削除、(3).(ドット)文字以降を削除を行っている。<br> | ||
なお、操作を指定せず${変数名}とする場合、$変数名と同義になる。 | なお、操作を指定せず${変数名}とする場合、$変数名と同義になる。<br> | ||
<source lang="sh"> | <source lang="sh"> | ||
#! /bin/bash | #! /bin/bash | ||
| 52行目: | 52行目: | ||
utf8 # ${LANG#*.}の結果 | utf8 # ${LANG#*.}の結果 | ||
ja_JP # ${LANG%.*}の結果 | ja_JP # ${LANG%.*}の結果 | ||
<br> | |||
下表に、主な変数の操作を示す。<br> | |||
<center> | |||
{| class="wikitable" | |||
|- | |||
! 指定方法 !! 操作内容 | |||
|- | |||
| ${変数名:開始位置:長さ} || 開始位置から指定した長さ分の文字列を切り出す | |||
|- | |||
| ${変数名#パターン}<br>${変数名##パターン} || パターン部分(前方一致)を削除する。<br>#の場合は最短一致、##の場合は最長一致となる。 | |||
|- | |||
| ${変数名%文字列}<br>${変数名%%文字列} || パターン部分(後方一致)を削除する。<br>%の場合は最短一致、%%の場合は最長一致となる。 | |||
|- | |||
| ${変数名:-文字列} || 変数の内容を取得する。<br>変数がセットされていない場合、指定した文字列を返す。 | |||
|- | |||
| ${変数名:=文字列} || 変数の内容を取得する。<br>変数がセットされていない場合、指定した文字列を変数に代入して返す。 | |||
|- | |||
| ${#変数名} || 変数の文字数を取得する。(配列の場合は要素数) | |||
|} | |||
</center> | |||
<br><br> | <br><br> | ||