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