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

终端链式API调用问题:step2out无法在第三个请求中正常生效

多轮API调用变量失效问题解决

你的问题出在shell变量的引号解析规则上,具体原因和解决方法如下:

问题原因

你第三个curl请求的URL用了单引号包裹:

curl -v -k --location --request GET 'https://.....?param1=${step2out}'

在shell环境中,单引号会将内部所有内容当作纯文本字符串处理,不会解析${step2out}这个变量——也就是说,实际发送的请求参数是字符串${step2out},而非你预期的step2out变量值。这就是为什么单独用step2out的值运行能正常工作,但放在脚本里失效的核心原因。

解决方法

把包裹URL的单引号改成双引号即可,双引号会正常解析内部的变量:

step1out=$(out=$(curl ....) && step2out=$(curl...using step1out) && curl -v -k --location --request GET "https://.....?param1=${step2out}")

如果你的URL中存在其他需要单引号转义的特殊字符,也可以采用字符串拼接的方式:

step1out=$(out=$(curl ....) && step2out=$(curl...using step1out) && curl -v -k --location --request GET 'https://.....?param1='${step2out})

不过更推荐第一种双引号的写法,它能避免变量值中包含空格、&等特殊字符时出现的解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:00:56