curl隐藏Linux/Unix shell脚本上的进度条输出

时间:2020-01-09 14:16:12  来源:igfitidea点击:

我编写了一个shell脚本,并使用curl命令使用curl https://example.com/data/api/$key/hash.html获取URL输出。
但是,curl命令正在输出我的脚本不需要的完整进度信息。
如何获取curl命令以不显示进度条输出?
如何隐藏curl命令输出?
有没有一种简单的方法可以使Ubuntu Linux桌面上的curls进度输出静音?

说明:cUrl既是应用程序库,又是用于在Web上下载文件或执行请求的命令。

curl命令可在Linux,Windows,macOS,* BSD和类似Unix的系统上使用。
本教程显示如何使用curl命令在Linux或Unix-like系统上隐藏进度条输出。

使用Shell脚本时,curl隐藏进度条输出

隐藏curl进度条的过程是将-s或--silent选项传递给curl命令:

  • 打开终端应用
  • 输入命令:curl -s https://www.theitroad.local/>/tmp/output.html
  • 使用cat命令验证它:cat/tmp/output.html

让我们详细查看所有命令和一些示例。

如何获取cURL在Linux上不显示进度栏

考虑以下简单命令:

$ curl https://www.theitroad.local/ > /tmp/output.html

如何使curl命令静音输出进度

运行命令:

$ curl -s https://www.theitroad.local/ > /tmp/output.html

或者

$ curl --silent https://www.theitroad.local/ > /tmp/output.html

您也可以如下使用grep命令或egrep命令:

$ curl -s https://www.kernel.org/ | grep -A 2 '<td id="latest_button">'

了解-s-S选项

-s或--silent选项用作静音或安静模式。
不要显示进度表或错误消息。
使Curl静音。
除非您将其重定向,否则它将仍然输出您要求的数据,甚至可能输出到终端/标准输出。

除了此选项外,还可以使用-S,--show-error禁用进度表,但仍显示错误消息。

以下命令将使进度输出静音,而不会消除实际错误:

$ curl -sS https://www.example.com/foo/bar.cgi > /tmp/out.txt

或者

$ curl -sS https://www.theitroad.local/ > /dev/null

消除了在类似Unix的系统上运行的旧版本curl上的进度条

如果您使用的是curl的旧版本,并且无法更新具有-s选项的curl,请尝试:

$ curl https://www.theitroad.com/ 2>/dev/null > /tmp/nix.html

或者

$ curl https://www.theitroad.com/ 2>/dev/null | grep '<title>'