curl - 使 curl 将错误发送到 stderr 并将其他所有内容发送到 stdout

标签 curl stdout stderr

有没有办法告诉 curl 将错误输出到 stderr,并将其他所有内容输出到 stdout?

原因是我每天晚上从命令行(实际上是一个 cronjob)使用 curl 将文件上传到 FTP 站点。不幸的是,因为 curl 在 stderr 上输出状态信息,所以当实际上没有出现任何错误时,我会收到一封有关错误的电子邮件。 (我将 stdout 重定向到日志文件,但保持 stderr 不变,以便 cron 将其通过电子邮件发送给我(如果有任何输出。)

有一些选项可以让 curl 静音,或者将所有内容输出到 stdout,但是这两种选择都可以防止错误出现在 stderr 上——这意味着当我真正想知道错误时,我不会收到电子邮件。

那么有没有办法让 curl 只在 stderr 上输出错误,而在 stdout 上保持正常输出完好无损?

最佳答案

尝试这个:

# No error messages because it succeeds.
curl  http://www.shikadi.net/        --fail --silent --show-error

# This prints an error message to stderr
curl  http://i.like.you.def.maybe/   --fail --silent --show-error

感谢 Russell Davis 在此页面上的回答,man curl ,并反复试验。
出于好奇,这里是 wget问题版本:https://superuser.com/questions/420120/wget-is-silent-but-it-displays-error-messages

关于curl - 使 curl 将错误发送到 stderr 并将其他所有内容发送到 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935006/

相关文章:

linux - 将文本回显到 bash 脚本中的多个文件

go - 代理 exec.Cmd Stdout/Stderr 不丢失 TTY

node.js 集群,将子级标准输出重定向到文件中断数据

python - Flask RESTful POST JSON 失败

PHP cURL POST 请求无法发送?

curl: (60) 无法识别对等方的证书颁发者。

python - Ruby 中的 "sys.stdout.write()"等价物是什么?

python - 如何捕获 OpenCV 写入 stderr 的消息?

c# - Console.Error 和 Console.Out 不写入重定向文件流

http - 如何在不使用 -F 的情况下重写此 CURL 多部分/表单数据请求?