linux - 使用来自 shell 变量的 JSON 内容运行 curl 命令

标签 linux bash shell

<分区>

我有下面的脚本...

而且我似乎无法让变量起作用

#!/bin/bash

info = 'Help...?'    
object='{"attachments": [{"title": "ti1","text": $info }]}'    
curl -X POST -H 'Content-type: application/json' --data '$object' https://hooks.slack.com/services/xxxx

exit 0

如果没有 $info,即使 --data '$object' 也无法工作...因为 Slack API 无法读取我的请求。

我该如何解决这个问题?

最佳答案

传递 shell 变量时使用双引号并删除变量赋值中的多余空格。

curl -X POST -H 'Content-type: application/json' --data "$object"
#                                                       ^^^^^^^^^^

使用嵌套引号将值保留在 JSON 语法中

info='Help...?'
object='{"attachments": [{"title": "ti1","text": "'"$info"'" }]}'

关于linux - 使用来自 shell 变量的 JSON 内容运行 curl 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49671580/

相关文章:

linux - 如何在 perl 脚本中使用 linux bash 命令?在 perl 脚本中使用它时出现错误

Linux Bash 如何在需要从标准输入/文件输入的程序上使用 xargs?

linux - 使用“查找”命令剪切日期以选择日期

bash - 如何通过 bash 中的变量传递带空格的命令行参数

javascript - 将 BASH 的日期格式转换为 JavaScript 的日期格式

bash - Bash 4.0.0 中 $@ 未绑定(bind)变量的解决方法?

linux - Jenkins - 在中止主构建之前运行子构建

mysql - 在 Linux Ubuntu 中安装 MySQL 失败

linux - 从ssh注销后如何使程序继续运行?

node.js - 监视/监视某些关键字的后台作业