You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下echo输出GitHub速率限制信息乱序问题排查与解决

解决GitHub拉取频率限制检查时echo输出乱序问题

问题场景

在下载GitHub文件前,需要先检查是否触发拉取频率限制并打印提示,但执行bash命令时,echo输出的提示内容出现乱序。

原命令示例

RATE_LIMIT=$(curl -sI https://api.github.com/repos/username/repo/contents/file.txt | grep -i "x-ratelimit-remaining")
echo "当前剩余拉取次数: $RATE_LIMIT"

预期输出

当前剩余拉取次数: X-RateLimit-Remaining: 4999

实际输出

: 4999剩余拉取次数: X-RateLimit-Remaining

curl返回的响应头(含问题字符)

HTTP/2 200 
cache-control: public, max-age=60, s-maxage=60
x-ratelimit-limit: 5000
x-ratelimit-remaining: 4999\r
x-ratelimit-reset: 1718000000
...

原因排查

乱序是因为curl返回的响应头中带有回车符(\r),当bash解析这个变量时,\r会将光标重置到行首,后续输出内容会覆盖之前的文本,导致显示错乱。

优化后的脚本

通过tr -d '\r'移除响应头中的回车符,解决输出乱序问题:

# 拉取响应头并移除回车符,提取剩余次数
RATE_LIMIT=$(curl -sI https://api.github.com/repos/username/repo/contents/file.txt | grep -i "x-ratelimit-remaining" | tr -d '\r')
# 格式化输出提示
echo "当前剩余拉取次数: ${RATE_LIMIT#*: }"

脚本说明

  1. tr -d '\r':彻底删除响应头中的回车符,避免光标重置问题
  2. ${RATE_LIMIT#*: }:可选优化,只提取次数数值,让输出更简洁(比如输出当前剩余拉取次数: 4999)

内容的提问来源于stack exchange,提问作者saberlion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:23:28