【问题标题】:Escape braces in kshksh中的转义大括号
【发布时间】:2017-07-27 15:33:02
【问题描述】:

我正在尝试在 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"}] 

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

【问题讨论】:

  • RESULT="[{\"site\":\"${COUNTRY}\",\"lang\":\"${LANGUAGE}\"}]",也许?跨度>

标签: linux ksh


【解决方案1】:

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

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

RESULT=$RESULT"]"

echo "$RESULT"

【讨论】:

  • 最后一行变量周围的双引号对我有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2022-01-10
  • 2013-05-07
  • 2013-10-17
  • 2011-08-09
相关资源
最近更新 更多