「シェルスクリプトの基礎 - 変数」の版間の差分

ナビゲーションに移動 検索に移動
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>


案内メニュー