【发布时间】:2020-04-17 21:39:16
【问题描述】:
正在寻找一种方法来限制 curl 命令的输出
例如,当使用 curl 检查服务器上的端口是否打开时,只想将输出限制在第一行以确认端口已打开
curl -v 主机:1521 只想显示前 3 行输出 *即将连接到 *尝试主机..连接 * 连接到主机
【问题讨论】:
正在寻找一种方法来限制 curl 命令的输出
例如,当使用 curl 检查服务器上的端口是否打开时,只想将输出限制在第一行以确认端口已打开
curl -v 主机:1521 只想显示前 3 行输出 *即将连接到 *尝试主机..连接 * 连接到主机
【问题讨论】:
为什么不把它传送到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),否则不返回任何内容。
【讨论】:
-n3 不起作用。如果您将输出限制为 3 行但只有 1 行,它无论如何都会打印所有内容。请发布整个输出,然后我可以提供更多帮助。