我有以下字符串
# 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].
现在我想将模式放入变量中,然后替换命令将不起作用
{{1}}
如何使用变量中定义的模式进行替换?
答案 0 :(得分:0)
将表达式用双引号括起来:
echo "${str/$var/}"
在busybox上为我工作:
# 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
#