在ksh中逃脱大括号

时间:2017-07-27 15:33:02

标签: linux ksh

我正在尝试在ksh文件中准备JSON。我正面临着这个问题 - 我认为这是因为我无法正确使用牙箍。例如:

RESULT="[";
COUNTRY=mCountry
LANGUAGE=mLang

AppendParams()
{
   RESULT=$RESULT"{\"site:\"$COUNTRY\",\"lang\":\"$LANGUAGE\"}";
}
AppendParams

RESULT=$RESULT"]";

echo $RESULT;

输出是:

sh-4.3$ ksh main.ksh                                                                                                                                                                                  
["site:"mCountry"] ["lang":"mLang"]

而不是

[{"site:"mCountry","lang":"mLang"}] 

有没有办法禁用大括号或逃避它们?请帮忙。

1 个答案:

答案 0 :(得分:1)

当您回显或打印其值可能包含大括号的变量时,请将变量名称双引号为" $ {VARIABLE}"避免支撑扩张。您也可以使用单引号来避免必须转义每个双引号。试试:

    AppendParams()
{
   RESULT=${RESULT}'{"site:"'${COUNTRY}'","lang":'${LANGUAGE}'"}'
}
AppendParams

RESULT=$RESULT"]"

echo "$RESULT"