![将终端输出发布到 cURL](https://linux22.com/image/691359/%E5%B0%86%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA%E5%8F%91%E5%B8%83%E5%88%B0%20cURL.png)
我正在尝试将 uptime 的输出发布到 HTTPS 地址上的 cURL post 问题是我必须在 -d 选项中发送以“message=”开头的输出。每次运行以下命令时,我都会得到:-bash:@-:未找到命令
echo "time=`uptime`" | curl -X POST "https://url/hook/abcd123" -d "message=`@-`"
关于如何将 cURL @- 包含在我发送 POST 的 URL 的必填 message= 字段中,您有什么想法吗?
答案1
反引号
`@-`
对 Bash 有特殊含义。它们是命令替换,意味着 Bash 将尝试执行@-
并将该输出插入命令行。当然,这行不通,因为这@-
不是有效的 bash 命令。此外,将 STDIN 和文本组合起来的方式也行不通。尝试
time=`uptime` && curl -X POST "https://url/hook/abcd123" -d "message=$time"