代码之家  ›  专栏  ›  技术社区  ›  Ilya

ksh中的逃生支架

  •  0
  • Ilya  · 技术社区  · 7 年前

    我正在尝试在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 回复  |  直到 7 年前
        1
  •  1
  •   mao    7 年前

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

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