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

如何让Curl命令仅输出Token并保存为环境变量?

问题描述

我执行了以下POST请求的curl命令:

curl --location --request POST 'https://xxx.xxx/authtoken' \
--header 'authString: OEU4MkVDRjctMERDNy0yRDlBLTYxNzZFOUFFMjI0OEMyRkI6NTU1QjVEOUItOTRGOS00MkM2LUJDRUFEQjE4MUU1MzhBMUU=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: CFID=xxxx; CFTOKEN=xxxxxx; APITOKEN=xxxxxx; JSESSIONID=xxxxxxxxxx' \
--data-urlencode 'authString=xxxx-xxxx-xxxxx-xxxx=='

返回的JSON结果为:

{"message":"","success":true,"timestamp":"August, 04 2022 10:20:23","apiToken":"321D8093-0014-ED11-9105-0050568D5083"}

我需要提取其中的apiToken值并保存为环境变量,供后续curl命令使用,但尝试用grep未成功,求解决方法。


方法1:使用jq(推荐,专业JSON处理工具)

jq是专门处理JSON数据的命令行工具,能精准提取字段,避免正则匹配的各种格式兼容问题。

首先确保系统已安装jq:

  • Debian/Ubuntu:apt install jq
  • CentOS/RHEL:yum install jq
  • macOS:brew install jq

执行以下命令即可提取并设置环境变量:

# 执行curl请求并将apiToken存入环境变量
export APITOKEN=$(curl --location --request POST 'https://xxx.xxx/authtoken' \
--header 'authString: OEU4MkVDRjctMERDNy0yRDlBLTYxNzZFOUFFMjI0OEMyRkI6NTU1QjVEOUItOTRGOS00MkM2LUJDRUFEQjE4MUU1MzhBMUU=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: CFID=xxxx; CFTOKEN=xxxxxx; APITOKEN=xxxxxx; JSESSIONID=xxxxxxxxxx' \
--data-urlencode 'authString=xxxx-xxxx-xxxxx-xxxx==' | jq -r '.apiToken')

# 验证变量是否生效
echo $APITOKEN
  • -r参数让jq输出不带引号的原始字符串,适合直接作为环境变量值。

方法2:纯Shell工具组合(无jq时可用)

如果无法安装jq,可以用grep配合sed或awk提取,注意此方法依赖JSON格式稳定(字段顺序、引号格式不变):

方案A:grep + sed

export APITOKEN=$(curl ... | grep -o '"apiToken":"[^"]*"' | sed 's/"apiToken":"\([^"]*\)"/\1/')
  • grep -o '"apiToken":"[^"]*"':精准匹配"apiToken":"xxx"格式的片段,只输出匹配部分
  • sed 's/"apiToken":"\([^"]*\)"/\1/':剔除字段名和引号,只保留token值

方案B:awk

export APITOKEN=$(curl ... | awk -F '"' '/apiToken/ {print $4}')
  • -F '"':以双引号作为字段分隔符
  • /apiToken/:定位包含目标字段的行
  • print $4:输出分割后的第4个字段(对应token值)

为什么单独用grep会失败?

单独使用grep只能定位包含apiToken的行或匹配片段,但无法直接提取嵌套在引号内的具体值,也无法处理JSON的结构格式,必须配合其他工具完成截取逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:54:18