2026.06.04 | youres | 22次围观
为什么需要多变量组合输出
单独使用 curl -w "%{url_effective}" 只能看到一个变量,但实际调试中往往需要同时知道:重定向了几次、最终落在哪个URL、总共花了多少时间。多变量组合输出就是解决这个问题。
基础语法:三种组合方式
方式一:直接在命令行拼接
curl -s -o /dev/null -w "%{url_effective} %{num_redirects} %{time_total}\n" -L https://example.com
缺点:输出挤在一起,分不清哪个值对应哪个变量。
方式二:用换行符分隔(推荐)
curl -s -o /dev/null \
-w "最终URL: %{url_effective}\n跳转次数: %{num_redirects}\n总耗时: %{time_total}s\n" \
-L https://example.com
输出清晰可读,适合人工查看。
方式三:输出JSON格式(脚本处理首选)
curl -s -o /dev/null \
-w "{\"url\":\"%{url_effective}\",\"redirects\":%{num_redirects},\"time\":%{time_total}}" \
-L https://example.com
实战模板一:重定向全链路诊断
curl -s -o /dev/null \
-w "URL: %{url_effective}\n跳转次数: %{num_redirects}\nSSL耗时: %{time_appconnect}s\n总耗时: %{time_total}s\nHTTP状态码: %{http_code}\n" \
-L https://example.com
这个模板一次性输出:最终URL、跳转次数、SSL握手耗时、总耗时、最终HTTP状态码。是排查重定向问题最常用的组合。
实战模板二:性能分析三件套
curl -s -o /dev/null \
-w "DNS: %{time_namelookup}s\n连接: %{time_connect}s\n首字节: %{time_starttransfer}s\n总耗时: %{time_total}s\n" \
https://example.com
四个时间变量分别对应:DNS解析、TCP连接、首字节(TTFB)、总耗时。用来定位网站慢在哪个环节。
实战模板三:批量检测CSV输出
curl -s -o /dev/null \
-w "%{url_effective},%{num_redirects},%{http_code},%{time_total}\n" \
-L https://example.com
输出逗号分隔格式,直接重定向到CSV文件,配合xargs批量检测多个网站。
实战模板四:@模板文件(最优雅的方式)
新建文件 curl-format.txt:
最终URL: %{url_effective}
跳转次数: %{num_redirects}
HTTP状态码: %{http_code}
DNS耗时: %{time_namelookup}s
连接耗时: %{time_connect}s
总耗时: %{time_total}s
调用方式:
curl -s -o /dev/null -w "@curl-format.txt" -L https://example.com
模板文件支持换行和注释,可读性最好,适合写进团队知识库。
实战模板五:重定向变量组合(url_effective + url_redirect)
curl -s -o /dev/null \
-w "最终URL: %{url_effective}\n最后一跳Location: %{url_redirect}\n跳转次数: %{num_redirects}\n" \
-L https://example.com/some-path
url_redirect 显示最后一次重定向的Location头值,url_effective 显示最终地址,两者配合能判断重定向是否完全符合预期。
常见坑:输出中的特殊字符处理
URL中含有 & 或空格时,直接输出会导致Shell解析错误。两种解决方案:
# 方案1:用引号包裹
curl -s -o /dev/null -w "URL: \"%{url_effective}\"\n" -L https://example.com
# 方案2:输出到文件,不依赖终端解析
curl -s -o /dev/null -w "@format.txt" -L https://example.com > result.txt 2>&1
相关文章
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论