【发布时间】:2015-01-17 05:26:20
【问题描述】:
在带有 bash 的 Unix 系统上检测到 shellshock 问题后,我必须创建一个脚本作为我在公司实习的一部分以更新 bash。
安装更新的 IBM bash*.rpm 的先决条件是:
- 安装了 bash(简单检查)
- bash 版本低于 4.2.50
我在处理第二部分时遇到了问题,因为真正的 bash 版本是由命令 bash -version 而不是 rpm -qi bash 给出的,它本质上给出了安装包的版本/发行版(不一定是真正的 bash 版本) .
基本上,我的脚本是这样的:
if [[ bash installed ]] ; then
if [[ bash version installed is < 4.2.50 ]] ; then
install bash version 4.2.50
fi
fi
bash -version返回一大堆文字,我想挑出bash的版本。
到目前为止,我使用了以下命令:
$ bash -version | grep version | awk '{print $4}' | head -n 1
返回:
4.2.50(1)-release
有没有办法检索真正的 bash 版本?我玩过sed 命令,但没有成功。
【问题讨论】:
-
4.2.50(1)-release有什么问题?你的预期输出是什么?您打算如何将其与 4.2.50 进行比较?