示例:
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"
使用"
转义字符。
0. json:
{
"type": "github-releases",
"gitrepo": "ipfs/go-ipfs"
}
如何将$ giitrepo放入$releasetag中?提前感谢!
Bash变量在加引号的"
字符串中展开
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"
Btw,当您使用jq
从0.json
提取.gitrepo
时,您也可以使用它以完全相同的方式从curl
的输出中提取.tag_name
(而不是使用grep
和sed
),如下所示:
gitrepo="$(jq -r '.gitrepo' 0.json)"
releasetag="$(
curl --silent "https://api.github.com/repos/$gitrepo/releases/latest"
| jq -r '.tag_name'
)"
echo "$releasetag"
为了进一步简化它(取决于您的用例),只需写:
curl --silent "https://api.github.com/repos/$(jq -r '.gitrepo' 0.json)/releases/latest"
| jq -r '.tag_name'