シェルスクリプトの変数に対するパターンマッチ
ちゃんと覚えていなくて検索するたびにこの記事を見て思い出している。
検索して探すのも面倒なのでこっちに書いておく。
■変数に対するパターンマッチ
前回、ファイルの拡張子を書き換える例を示したと思います。そこに使ったパターンマッチは4種類あり、非常に汎用性の高いものです。bashで始めるシェルスクリプト基礎の基礎 (1/2):Windowsユーザーに教えるLinuxの常識(8) - @IT
- ${変数#パターン}
- 変数の内容について、最初の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
- ${変数##パターン}
- 変数の内容について、最初の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
- ${変数%パターン}
- 変数の内容について、最後の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
- ${変数%%パターン}
- 変数の内容について、最後の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
変数が空白のとき
パターンマッチじゃないけど${変数:x値}で変数が空白(または未定義)の時の値を指定できたりする。
- ${変数:=値}
- 変数が空白のときに変数に値をセットする。
- ${変数:-値}
- 変数が空白のときに値を返す。
- ${変数:+値}
- 変数が空白ではないときに値を返す。
- ${変数:?値}
- 変数が空白であれば値を標準エラーに出力してexitする。