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

如何在Bash脚本中将curl响应中的ACCESS-TOKEN值保存到变量

从Curl响应头提取ACCESS-TOKEN到Bash变量

这有几种简单可靠的方法,帮你把curl输出里的ACCESS-TOKEN值提取出来并存入变量,方便后续使用:

方法1:Grep + Awk组合

这是最直观的方式,先用grep定位目标行,再用awk提取token值:

ACCESS_TOKEN=$(curl -k -I --header "Accept: application/*;version=34.0" --header "Authorization: Basic testXXX1" --request POST https://test.io/api/sessions 2>/dev/null | grep -i "ACCESS-TOKEN:" | awk '{print $2}')

各部分解释:

  • 2>/dev/null:把curl的错误提示(比如连接状态信息)重定向到空设备,避免干扰最终结果
  • grep -i "ACCESS-TOKEN:":忽略大小写匹配目标行,确保哪怕响应头里是小写的access-token:也能命中
  • awk '{print $2}':提取该行的第二个字段,也就是冒号后面的token值

方法2:用Sed直接替换提取

Sed可以直接匹配并替换掉不需要的部分,只保留token:

# 精确匹配大小写的版本
ACCESS_TOKEN=$(curl -k -I --header "Accept: application/*;version=34.0" --header "Authorization: Basic testXXX1" --request POST https://test.io/api/sessions 2>/dev/null | sed -n 's/^ACCESS-TOKEN: //p')

# 忽略大小写的版本(GNU Sed可用)
ACCESS_TOKEN=$(curl -k -I --header "Accept: application/*;version=34.0" --header "Authorization: Basic testXXX1" --request POST https://test.io/api/sessions 2>/dev/null | sed -n 's/^ACCESS-TOKEN: //Ip')

解释:

  • -n:告诉sed只输出处理后的匹配行
  • s/^ACCESS-TOKEN: //p:把行首的ACCESS-TOKEN: 替换为空,然后打印剩下的内容(就是我们要的token)
  • I标志:让匹配忽略大小写(仅GNU Sed支持,如果你用的是BSD Sed,可以用字符组[Aa][Cc]...来实现)

方法3:直接用Awk处理

不需要额外的grep,awk可以直接完成匹配和提取:

# 精确匹配大小写
ACCESS_TOKEN=$(curl -k -I --header "Accept: application/*;version=34.0" --header "Authorization: Basic testXXX1" --request POST https://test.io/api/sessions 2>/dev/null | awk '/^ACCESS-TOKEN:/ {print $2}')

# 忽略大小写
ACCESS_TOKEN=$(curl -k -I --header "Accept: application/*;version=34.0" --header "Authorization: Basic testXXX1" --request POST https://test.io/api/sessions 2>/dev/null | awk 'tolower($0) ~ /^access-token:/ {print $2}')

验证结果

提取完成后,你可以用以下命令确认变量是否正确获取到了token:

echo $ACCESS_TOKEN

执行后应该只会输出test1.testXXX.testXX-testXXXX_testXXX_testXXXX-testXX_NR_TESTXX_test_nnndnndnddn_jdjdjdjd_jbjndinfjenkndkn-nnjjnj这个token值。

内容的提问来源于stack exchange,提问作者Jaw. M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:59:05