3

我有以下 bash 脚本来替换花括号的括号。

VARS=${VARS//(/{}
VARS=${VARS//)/}}

第一行可以正常工作,但第二行只会在末尾添加一个花括号。

如果我尝试用反斜杠转义大括号,反斜杠本身就会存储在变量中。

有没有不同的方法可以从字符串中转义这些花括号?

4

2 回答 2

1

您必须引用第一个},以便 bash 不会认为这是表达式的结尾:

VARS=${VARS//)/\}}
于 2011-07-28T18:25:33.983 回答
1

这是另一种方法:

VARS=`echo ${VARS} | tr '()' '{}'`

虽然看起来用反斜杠转义大括号是有效的,但这是我使用的:

VARS=${VARS//(/{}
VARS=${VARS//)/\}}
于 2011-07-28T18:29:25.837 回答