check Linux packages


#!/bin/bash 

array=( 
  binutils-2.23.52.0.1.el7.x86_64 
  compat-libcap1-1.10-1.x86_64 
  compat-libstdc++-33-3.2.3-69.el7.x86_64 
  compat-libstdc++-33-3.2.3-69.el7.i686 
  gcc-4.8.2-0.el7.x86_64 
  gcc-c++-4.8.2-0.el7.x86_64 
  glibc-2.17-0.0.el7.i686 
  glibc-2.17-0.0.el7.x86_64 
  glibc-devel-2.17-0.0.el7.x86_64 
  ksh.x86_64 
  libgcc-4.8.2-00.el7.i686 
  libgcc-4.8.2-00.el7.x86_64 
  libstdc++-4.8.2-00.el7.x86_64 
  libstdc++-4.8.2-00.el7.i686 
  libstdc++-devel-4.8.2-00.el7.x86_64 
  libaio-0.3.109-00.el7.x86_64 
  libaio-devel-0.3.109-00.el7.x86_64 
  make-3.82-00.el7.x86_64 
  sysstat-10.1.5-00.el7.x86_64 
) 

len=${#array[*]} 
i=0 
line='-------------------------------------------------------------------' 
while [[ $i -lt $len ]]; do 
  req_pkg="^${array[$i]%%.*}" 
  req_arch="${array[$i]##*.}" 
  req_arch="${req_arch/6/.}"; req_arch="${req_arch/3/.}$" 
  curr_rpm=`rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" | grep ${req_pkg} | grep 

${req_arch}`; 
  if [ $(expr "${curr_rpm%%.*}" \>= "${req_pkg}") -eq 1 ]; 
  then 
    result1=pass; else result1=failed; 
  fi 
  printf "%s %s [$result1]\n" ${array[$i]} ${line:${#array[$i]}} 
  echo $curr_rpm; 
  let i++; 
done