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

Bash脚本echo输出变量名而非值的问题排查

问题原因及解决办法
  • 核心原因:你用单引号包裹了echo的输出内容。在Bash中,单引号属于「强引用」,会把内部所有内容原样输出,包括变量名${site_url},不会进行变量值的替换。而脚本其他地方变量正常,是因为那些场景没有用单引号包裹变量。

  • 解决办法:
    有两种常见修改方式:

    1. 把外层的单引号改成双引号,同时对XML属性里的双引号进行转义(用\"):
      echo "<?xml version=\"1.0\" standalone=\"yes\"?> <url>https://${site_url}</url> ...  " > /var/www/$site_url/system_config/config.xml
      
    2. 混合使用单引号和双引号,将变量部分单独用双引号包裹,和单引号内容拼接:
      echo '<?xml version="1.0" standalone="yes"?> <url>https://'"${site_url}"'</url> ...  ' > /var/www/$site_url/system_config/config.xml
      
  • 补充说明:Bash中引号规则:

    • 单引号:内部所有字符(除了\'用来转义单引号)都原样输出,不解析变量、特殊字符。
    • 双引号:会解析内部的变量、转义字符(比如\"、\$等),其他字符原样输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:45:44