1

次の文字列があります

str="aaa.bbb.1.ccc.[mmm]."

次のコマンドで置換すると、機能します

# echo ${str/ccc.\[mmm\]./}
aaa.bbb.1.

パターンを変数に入れたいのですが、置換コマンドが機能しません

# var="ccc.\[mmm\]."
# echo ${str/$var/}
aaa.bbb.1.ccc.[mmm].

# var="ccc.[mmm]."
# echo ${str/$var/}
aaa.bbb.1.ccc.[mmm].

変数で定義されたパターンで置換を機能させるにはどうすればよいですか?

4

1 に答える 1

0

式を二重引用符で囲みます。

echo "${str/$var/}"

ビジーボックスで私のために働きます:

# str="aaa.bbb.1.ccc.[mmm]."
# echo ${str/ccc.\[mmm\]./}
aaa.bbb.1.
# var="ccc.\[mmm\]."
# echo ${str/$var/}
aaa.bbb.1.ccc.[mmm].
# echo "${str/$var/}"
aaa.bbb.1.
# ls -l /bin/sh
lrwxrwxrwx    1 root     root             7 May  9 05:22 /bin/sh -> busybox
#
于 2015-05-20T04:32:16.950 に答える