【发布时间】:2011-10-15 09:04:32
【问题描述】:
我有以下 bash 脚本来替换花括号的括号。
VARS=${VARS//(/{}
VARS=${VARS//)/}}
第一行可以正常工作,但第二行只会在末尾添加一个花括号。
如果我尝试用反斜杠转义大括号,则反斜杠本身会存储在变量中。
有没有其他方法可以将这些花括号从字符串中转义?
【问题讨论】:
我有以下 bash 脚本来替换花括号的括号。
VARS=${VARS//(/{}
VARS=${VARS//)/}}
第一行可以正常工作,但第二行只会在末尾添加一个花括号。
如果我尝试用反斜杠转义大括号,则反斜杠本身会存储在变量中。
有没有其他方法可以将这些花括号从字符串中转义?
【问题讨论】:
这是另一种方法:
VARS=`echo ${VARS} | tr '()' '{}'`
虽然看起来用反斜杠转义大括号是可行的,但这是我使用的:
VARS=${VARS//(/{}
VARS=${VARS//)/\}}
【讨论】:
您必须引用第一个 } 以便 bash 不会认为这是表达式的结尾:
VARS=${VARS//)/\}}
【讨论】: