JP1/Advanced Shell
JP1/Advanced Shellでは,一部の標準コマンドやスクリプト制御文でパターンとの比較ができます。例えば,「${variable#pattern}」の書式の場合,変数variableの値のうち,パターンpatternと一致する部分で最も短い部分を削除した値に置換します。使用例を次に示します。
- 使用例
$ var=abcd $ echo ${var#a[b]} cdパターンと比較できるかどうかは機能ごとに決まっています。パターンの書式が不正な場合,パターンを通常の文字列として比較します。例えば,「[a*(b])」の場合,本来パターンとして特別な意味を持つ「[」,「*(」および「]」はすべて通常の文字として比較されます。使用例を次に示します。
- 使用例
$ var='[a*(b])cd' $ echo ${var#[a*(b])} cdパターンの書式が不正と判定される場合を次の表に示します。
表5-18 パターンの書式が不正と判定される場合
パターンの書式が不正と判定される場合 例 「[ ]」に囲まれた文字列で,「(」に対応する「)」がありません。 [a*(b]) 「( )」に囲まれた文字列で,「[」に対応する「]」がありません。 *(a[b)c] 「[ ]」に囲まれた文字列が,「( )」に囲まれていない「|」を含みます。 *(a[foo|bar]) a[foo|bar] 「[」に対応する「]」がありません。 [a
- 注1
- 「[ ]」に囲まれた文字列では,「[」は文字として扱います。例えば,「[[a]」はパターンの書式として正当となります。この場合,最初の「[」は「]」に対応し,2つ目の「[」は文字として扱います。
- 注2
- 「[」の直後および「[!」の直後の「]」は,文字として扱うため不正と見なされません。
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.