如何使用Bash变量搜索替换语法替换带双大括号的内容?
Bash变量替换问题解决
问题中的错误是因为{和}是Bash的特殊字符(用于括号扩展、参数扩展语法),直接在替换模式中使用会被Shell错误解析,导致替换逻辑混乱。
要正确替换字面量{{BODY_PARAM}},需要对模式中的每个{和}进行转义,写法如下:
var='before {{BODY_PARAM}} after' body_arg='body' echo ${var/\{\{BODY_PARAM\}\}/${body_arg}}
执行后会输出正确结果:before body after
如果需要全局替换(当字符串中存在多个{{BODY_PARAM}}时),只需把单个/改成//:
echo ${var//\{\{BODY_PARAM\}\}/${body_arg}}
内容的提问来源于stack exchange,提问作者Noel Yap
相关产品推荐
相关产品推荐

