2017-07-27 102 views
0

我正准备在ksh文件中准备JSON。我面临这个问题 - 我认为这是因为我无法正确使用大括号。例如:ksh中的换算大括号

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"}] 

有没有一种方法来禁用括号或逃避呢?请帮忙。

+0

RESULT =“[{\”site \“:\”$ {COUNTRY} \“,\”lang \“:\”$ {LANGUAGE} \“}]”, – twalberg

回答

1

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

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

RESULT=$RESULT"]" 

echo "$RESULT" 
+0

最后一行中的变量的双引号可以帮助我。谢谢! – Ilya