管道 curl 的响应标头

管道 curl 的响应标头

当我尝试在变量中捕获 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//

相关内容