ksh 中的转义括号

Escape braces in 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"}] 

有没有办法禁用大括号或转义大括号?请帮忙。

当您回显或打印其值可能包含大括号的变量时,双引号变量名称如“${VARIABLE}”以避免大括号扩展。您也可以使用单引号来避免必须转义每个双引号。尝试:

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

RESULT=$RESULT"]"

echo "$RESULT"