linux - bash脚本curl请求中的转义变量
问题描述
我正在尝试通过 bash 脚本卷曲,但无法在 curl 请求中传递 var1 的值,并且在执行时出现错误......
#!/bin/bash
var1="some test message"
curl 'https://link' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": $var1
}
}'
解决方案
一般来说,不要像这样使用参数扩展来动态定义 JSON。不能保证您的模板与变量的内容相结合,生成格式良好的 JSON。(这与您不使用字符串插值来创建动态 SQL 查询的原因相同。)请改用类似的工具jq
。
curl 'https://link' ... \
-d "$(jq --argjson x "$var" \
-n '{msgtype: "text", text: {content: $x}}')"
推荐阅读
- unity3d - MixedRealityToolkit Spectator 预览示例构建错误
- c# - Adding UIImageView to UIAlertController
- python - 数据框的模拟结果适用
- php - 为什么 login.php 一直说密码无效?
- java - TestNG 预期的异常测试通过,尽管在调用的代码中没有抛出异常
- android - 如何修复警告“未知属性 android:duration”?
- c# - CodeSettings 存在于 AjaxMin 和 WebGrease 中
- node.js - 使用 sequalize raw 查询批量插入到 postgres
- powerbi - How to plot multiple measures on a line chart with shared axis and legend
- java - 应用程序处于睡眠模式时推送通知的延迟