如何将 uptime/df 的输出通过管道传输到 curl?

Cal*_*eed 13 linux pipe wget curl

我想使用 cURL将输出uptimedf命令发送到网络应用程序。我试过:

uptime | curl http://someurl.com -T -
Run Code Online (Sandbox Code Playgroud)

但这似乎没有发送数据。

将命令的输出作为 POST 参数发送到 cURL 的正确方法是什么?(或者 wget 如果这更容易)

saf*_*fsd 31

您可以在 curl 中使用带有 @- 参数的 -d 选项来接受来自管道的输入。您需要自己构建键值对。尝试这个:

echo "time=`uptime`" | curl -d @- http://URL
Run Code Online (Sandbox Code Playgroud)

反引号 (`) 表示应该执行包含的命令(在本例中为 uptime),并且反引号引用的文本替换为已执行命令的输出。

  • 如果命令的输出包含换行符(如 `df`),你可能需要使用 `curl --data-binary @- URL` 或在新版本的 curl 中: `uptime | curl --data-urlencode time@- URL` (4认同)