bash - 从 URL、HTML 或 JSON 中提取 Confluence 版本

标签 bash curl grep confluence

我正在尝试从类似的 URL 中提取版本

https://my.atlassian.com/download/feeds/current/confluence.json

这是我的 bash 脚本:

#!/bin/bash

# Get the actual version
url="https://de.atlassian.com/software/confluence/download"
actual_version="$(curl -s $url | grep -Po '(?<=version :)\d+' | head -1)"

echo $actual_version

不幸的是,它不仅仅给我版本号。

知道如何正确执行此操作吗?

注意:问题根据评论进行了多项改进/修订。

最佳答案

TL;DR

以下是从 JSON 页面中提取版本的最终命令:

curl -s "https://my.atlassian.com/download/feeds/current/confluence.json" | grep -Po '(?<="version":")[^"]*'  | head -1
6.11.0

详细信息

看看这个返回 JSON 和产品版本的网址:https://my.atlassian.com/download/feeds/current/confluence.json

以下是撰写本文时 JSON 源的副本:

downloads([{"description":"6.11.0 - Linux Installer (64 bit)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0-x64.bin","tarUrl":null,"md5":"5ce76e5763b97b93db21ba447b5fb4f0","size":"564.1 MB","released":"12-Aug-2018","type":"Binary","platform":"Unix","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Windows Installer (64 bit)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0-x64.exe","tarUrl":null,"md5":"71c6f1275cc4ed6089871e5a7fd1f09b","size":"564.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Windows","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Standalone (TAR.GZ Archive)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0.tar.gz","tarUrl":null,"md5":"4c245b2b1dcc18ec9aff483c708f937e","size":"510.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Unix, Mac OS X","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"},{"description":"6.11.0 - Standalone (ZIP Archive)","zipUrl":"https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0.zip","tarUrl":null,"md5":"f6d08f93840b92a2fbf9ac0005f249fb","size":"512.4 MB","released":"12-Aug-2018","type":"Binary","platform":"Windows","version":"6.11.0","releaseNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Release+Notes","upgradeNotes":"https://confluence.atlassian.com/display/DOC/Confluence+6.11+Upgrade+Notes"}])

在那里,您可以找到版本:

enter image description here

关于bash - 从 URL、HTML 或 JSON 中提取 Confluence 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220596/

相关文章:

php - 如何从另一个Laravel应用程序中捕获Laravel错误?

bash - 进入 grep -v 时获取退出代码

linux - 回归是什么意思?

linux - 从 bash 中的文件行获取字符串

c++ - 数据被添加到 curl 的检索内容中

linux - 删除第 N 个字段中编号小于 X 的行

grep - 如何grep ASCII控制字符

bash - bash 中不区分大小写的字符串比较

linux - 如何从匹配行之后删除文件中的所有行?

Bash - Curl (6) 无法解决主机问题