#!/bin/bash
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in "$@"; do
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
./showrpm.sh a2ps-4.14-10.1.el6.i686.rpm abrt-addon-vmcore-2.0.8-15.el6.centos.x86_64.rpm a2ps-4.14-10.1.el6.x86_64.rpm
运行结果:

这里出现了第二个特殊变量$@,该变量包含有输入的所有命令行参数值。如果你运行showrpm openssh.rpm w3m.rpm webgrep.rpm,那么 "$@"(有引号) 就包含有 3 个字符串,即openssh.rpm, w3m.rpm和 webgrep.rpm。 $*的意思是差不多的。但是只有一个字串。如果不加引号,带空格的参数会被截断。