用shell脚本显示rpm包的详细信息和安装后各文件的路径,并检测是否可以成功安装

#!/bin/bash
SUCCESS=0
E_NOARGS=65
E_NOFILE=66

# 给出脚本的使用方法是否正确
if [ -z "$1" ]
    then
        echo "USAGE: `basename $0` rpm-file"
        exit $E_NOARGS
fi

# 判断测试的rpm包是否存在
if [ ! -f "$1" ]
    then
        echo "$1 is not exist."
        exit $E_NOFILE
fi


{
#显示rpm包的详细信息
echo "Archive Description:"
rpm -qpi $1
echo "--------------------------------"

#显示rpm包安装后的所有文件的路径
echo "Archive Listing:"
rpm -qpl $1
echo "---------------------------------"
# 测试是否可以安装(存在依赖性和已经安装rpm的包不能安装)
echo -e "if can be install:\n "
rpm -i --test $1
if [ "$?" -eq $SUCCESS ]
    then
        echo "---------------------------------"
        echo "Test result:"
        echo "   $1 can be installed."
    else

        echo "---------------------------------"
        echo "Test result:"
        echo "    $1 can not be installed."
fi
} &> "$1.test"

# 测试结果重定向到$1.test文件中
echo "Results of rpm test in $1.test."

exit 0

测试:

1. 若没有位置参数则给出使用方法:

2. 若rpm文件不存在,则抛出文件不存在:

3. 若rpm包存在,并且脚本的使用方法正确,则会将rpm包的相信信息重定向到$1.test文件中:

4. 并且列出安装后所有文件的路径:

5. 并且测试rpm包是否可以成功安装,下图例子为在那安装存在却存在安装依赖的情况:

6. 下图为若rpm包已经安装过了的测试结果:

猜你喜欢

转载自blog.csdn.net/qq_40628106/article/details/86769085