linux - curl 特定 header 的 "write out"值

标签 linux bash shell curl

我目前正在编写一个 bash 脚本,并且正在使用 curl。我想要做的是获取一个特定的响应 header 。

基本上我想让这个命令起作用:

curl -I -w "%{etag}" "server/some/resource"

不幸的是,似乎 -w, --write-out 选项只有一组它支持的变量,并且不能打印响应中的任何 header 。我需要自己解析 curl 输出以获取 ETag 值,还是有办法让 curl 打印特定 header 的值?

显然是这样的

curl -sSI "server/some/resource" | grep 'ETag:' | sed -r 's/.*"(.*)".*/\1/'

可以解决问题,但让 curl 过滤标题会更好。

最佳答案

为“-w”指定的变量不直接连接到 http header 。 所以看起来你必须自己“解析”它们:

curl -I "server/some/resource" | grep -Fi etag

关于linux - curl 特定 header 的 "write out"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511895/

相关文章:

shell - 使用.sh文件中的-e选项运行hiveql的奇怪问题

linux - 强制 rsync 逐字节比较本地文件而不是校验和

java - CentOS 7 的 Java SELinux 策略模块在哪里?

c - N个进程共享内存c

c - volatile 和缓存行为

linux - 将 3 个功能合并为一个

linux - 如何使用 Shuf 命令保存随机数的位置

c - 在 C 中从设备名称获取硬盘可用空间

bash - 修改 bash 脚本以在读取文件时排除文本

Shell 中断 while-true 循环