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

如何在Bash脚本的Slack应用通知消息中正确插入自定义变量?

问题根因

Bash 语法中,单引号包裹的内容不会解析任何变量,你当前将整个 JSON 结构体放在单引号内,因此$company只会被当作文本字面量输出,不会读取变量的实际值。

可行修改方案
  • 方案1:单引号拆分拼接(最快捷,无需额外工具)
    把变量部分挪到单引号外,用双引号包裹变量保证特殊字符兼容,修改后代码如下:

    curl -X POST -H 'Content-type: application/json' --data '{"text":"Blah Blah Blah found on '"$company"'"}'
    
  • 方案2:用双引号包裹JSON整体,转义内部双引号
    双引号包裹的内容可以正常解析变量,仅需要把JSON内部的双引号用反斜杠转义即可:

    curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"Blah Blah Blah found on $company\"}"
    
  • 方案3:用jq生成JSON(最稳妥,避免格式损坏)
    如果$company变量可能包含双引号、换行等特殊字符,前两种方案可能会破坏JSON结构,推荐用jq工具生成合法JSON:

    # 先构造合法JSON
    post_data=$(jq -n --arg comp "$company" '{"text": "Blah Blah Blah found on \($comp)"}')
    # 调用curl发送
    curl -X POST -H 'Content-type: application/json' --data "$post_data"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:36:03