【发布时间】:2012-12-28 11:28:58
【问题描述】:
所以我打算在这里做的是尽可能紧凑地确定最新的主要版本和完整的内核版本字符串(没有无数管道到 grep)。
我已经对结果很满意了,但是如果有人知道如何压缩第一行,哪怕是最轻微的,那就太棒了(当有 no minor patches 时它也必须工作)。
kernel.org 的索引只有 36kB,而 http://www.kernel.org/pub/linux/kernel/v3.x/ 的索引为 136kB,所以这就是我使用它的原因:
_major=$(curl -s http://www.kernel.org/ -o /tmp/kernel && cat /tmp/kernel | grep -A1 mainline | tail -1 | cut -d ">" -f3 | cut -d "<" -f1)
pkgver=${_major}.$(cat /tmp/kernel | grep ${_major} | head -1 | cut -d "." -f6)
【问题讨论】:
-
主线还是稳定版?您的代码似乎有问题,所以我无法判断您的意图。
-
呃,解析首页会很痛苦。你能假设你的机器上有
git吗?如果这样做,最好处理git ls-remote -t git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git的输出 -
+1 用于 git;主页可能在说谎。
-
@John Zwinck,好吧,不,这不是马车:D。我正在从第一行说“主线”之后的 _major 字符串中删除,因为这是它在kernel.org 中的标题(只需单击并查看)。在
pkgver中的major变量之后还有点(.),所以这可能是某种线索。 @Josh Coartwright,哈哈,是的,我注意到了。那太棒了。坦率地说,我什至没有想到,但由于我只是在寻找稳定版本,我假设它必须是:git ls-remote -t git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git? -
@Det,是的,应该可以。
标签: bash sed grep cut archlinux