You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本创建含未解析变量的字符串遇Missing }错误求助

解决Shell脚本字符串变量的"Missing }."错误并保留变量形式

你的问题出在引号嵌套混乱和未阻止变量解析上:原代码里的双引号会让Shell尝试解析${domain.home}和${weblogic.Name},同时引号的错误嵌套触发了语法报错。要保留这两个变量的原始字符串形式,同时解决语法错误,有两种简单的实现方式:

方法一:用单引号包裹整个字符串

单引号在Shell里会完全保留内部内容的原样,不会解析任何变量,写法最简洁:

log_handler_ws_async='<property name="path" value="${domain.home}/servers/${weblogic.Name}/logs/async.log"/>'

输出这个变量时,会完全符合你的预期格式。

方法二:转义变量中的$符号

如果必须使用双引号包裹整体,需要把每个$转义成\$,阻止Shell解析变量:

log_handler_ws_async="<property name='path' value='\${domain.home}/servers/\${weblogic.Name}/logs/async.log'/>"

原代码错误原因

原代码里的"${domain.home}"写法,在双引号环境下Shell会尝试解析该变量,同时前后的'"引号组合导致Shell无法正确匹配引号边界,最终抛出"Missing }."的语法错误。

内容的提问来源于stack exchange,提问作者Ban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:46:01