我目前正在一个项目中,我需要更新未连接到互联网的多个系统。我必须在每个系统上手动下载和安装/升级每个rpm软件包。
我正在尝试编写一个脚本,该脚本将检查是否安装了较旧版本的软件包以及是否要执行升级。否则,请移至下一个软件包(我仅升级软件包,而不安装新软件包。)
这是我目前拥有的。该脚本引用的文件包含所有软件包的列表。我没有每个软件包的软件包名称,但是我有rpm,所以我很好奇如何在if语句中进行适当的比较,以使脚本在true时执行其他操作。
IFS="="
while read -r name value
do
RESULTS="rpm -qi ${value//\"/}"
if [[ $($RESULTS == "package ${value//\"/} is not installed") ]]
then
echo "Package ${value//\"/} is not installed, moving on..." >> patching_log.conf
else
if [[$(${value//\"/} == *"kernel"*)]]
then
do
rpm -ivh ${value//\"/} >> patching_log.conf
done < patches.conf
else
do
rpm -Uvh ${value//\"/} >> patching_log.conf
done < patches.conf
fi
fi
谢谢你!
[如果有机会,请给我们展示您的输入示例。我查看了您的程序,并提供了以下重写: