答え1
man bash
、説明する${parameter/pattern/string}
:
パターンが#で始まる場合は、パラメータ拡張値の先頭と一致する必要があります。パターンが%で始まる場合は、パラメータ拡張値の終わりと一致する必要があります。
> var=abcd
> echo "${var/bc/_}"
a_d
> echo "${var/#bc/_}"
abcd
答え2
いくつかの例では、パターンマッチングと ${parameter/pattern/string} 形式の置換について説明します。
パターンが / で始まる場合、そのパターンはすべて文字列に置き換えられます。通常、最初の発生のみが置き換えられます。
> test=test
> echo ${test//t/-}
> -es-
パターンが#で始まる場合は、パラメータ拡張値の先頭と一致する必要があります。
> test=test
> echo ${test/#t/-}
> -est
パターンが%で始まる場合は、パラメータ拡張値の終わりと一致する必要があります。
> test=test
> echo ${test/%t/-}
> tes-
アスタリスクを使用した例*
:
> test=test
> echo ${test/#*es/-}
> -t
引用: man bash
:${parameter/pattern/string}