![管道 curl 的响应标头](https://linux22.com/image/1223288/%E7%AE%A1%E9%81%93%20curl%20%E7%9A%84%E5%93%8D%E5%BA%94%E6%A0%87%E5%A4%B4.png)
当我尝试在变量中捕获 curl 的响应标头时得到了奇怪的结果:
pattern="< Content-Length: "
val=$(curl --verbose \
--request POST --data "desc=hello world" \
example.org 2>&1 | \
grep "$pattern" | sed -e "s/$pattern/xxx/")
echo "====="
echo "aaa $val bbb"
echo "====="
输出结果如下:
$ ./test.sh
=====
bbbxxx438
=====
为什么要删除“aaa”并将变量内容附加到行尾?
答案1
事实证明这是由于回车符引起的 - 只需简单操作即可修复s/\r//
。