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

如何在Shell的一个命令变量内部正确引用另一个命令变量的值

问题原因

你写的curl请求地址的引号和转义逻辑错误,Bash 双引号包裹的内容本身就支持变量自动展开,多余的转义和额外的双引号反而会破坏URL格式,导致变量无法正常解析。

修复方法

直接删掉URL部分多余的空双引号和\"转义符即可,修改后的完整代码如下:

gitrepo=$(jq -r '.gitrepo' 0.json)
releasetag=$(curl --silent "https://api.github.com/repos/$gitrepo/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
echo "$releasetag"

如果想更稳妥避免变量和后续字符混淆,也可以把变量用花括号包裹:https://api.github.com/repos/${gitrepo}/releases/latest,两种写法都可以正常生效。

内容的提问来源于stack exchange,提问作者dani 'SO learn value newbies'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:07