将终端输出发布到 cURL

将终端输出发布到 cURL

我正在尝试将 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"

相关内容