【问题标题】:How to reduce the output of the Curl command?如何减少 Curl 命令的输出?
【发布时间】:2020-04-17 21:39:16
【问题描述】:

正在寻找一种方法来限制 curl 命令的输出

例如,当使用 curl 检查服务器上的端口是否打开时,只想将输出限制在第一行以确认端口已打开

curl -v 主机:1521 只想显示前 3 行输出 *即将连接到 *尝试主机..连接 * 连接到主机

【问题讨论】:

    标签: linux curl


    【解决方案1】:

    为什么不把它传送到head

    curl -v host:1521 | head -n3
    

    -n3 表示从顶部开始的 3 行。

    编辑:

    正如在 cmets 中所讨论的,您使用 -v 选项来捕获打印在 stderr 而不是 stdout 上的标头等,因此 head 不会影响它。您必须将 stderr 重定向到 stdout,然后再操作:

    curl -v www.example.com 2>&1 | grep Connected
    

    如果连接成功,这将返回 * Connected to www.example.com (IP_ADDRESS_HERE) port 443 (#0),否则不返回任何内容。

    【讨论】:

    • 谢谢我试过了,但仍然看到所有的输出
    • 例如,如果我 curl host:1521 我只想 * 连接到主机 (10.1.1.1) 端口 1521 (#0) 我尝试使用 -n 标志 curl -v -n host:1521 |头 3 但没有骰子
    • 您的服务可能会在一行中返回所有信息。因此-n3 不起作用。如果您将输出限制为 3 行但只有 1 行,它无论如何都会打印所有内容。请发布整个输出,然后我可以提供更多帮助。
    • 如果我们以 curl -v www.rte.ie:443 | 为例head -n3 我想知道的唯一信息是 * 连接到 www.rte.ie (104.18.163.29) 端口 443 (#0),但我什么都知道。我需要这个的原因我需要在大约 50 个未安装 nc / telnet 的服务器上检查这个我只有 curl 可以使用
    • 我在另一个论坛上发现 curl 的 -N 开关会忽略缓冲区,所以就像你说的那样会返回前 3 个但只返回标题,似乎忽略 * 已连接
    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多