Iterando sobre uma matriz em um script de shell

0

Eu quero escrever código que leia uma lista de pacotes de um array e me informa se o RPM correspondente está instalado:

ARRAY=(
pkg-config
python
python-devel
python-libs
readline
renderproto
sqlite
tcl
tk
zlib
)

for i in 'echo  ${ARRAY[@]}'
do
    rpm -q $i
done

Este código não funciona corretamente. Eu quero que a saída seja ok rpm named foobar is installed ou rpm named foobar is not installed .

Como posso fazer isso?

    
por elbarna 05.05.2015 / 20:48

1 resposta

1

O comando rpm aparece para alterar seu status de saída dependendo se o pacote consultado está instalado, então ele pode ser usado por if :

for package in "${ARRAY[@]}"; do
    if rpm -q $package >/dev/null 2>/dev/null; then
       echo "Package $package is installed."
    else
       echo "Package $package is not installed."
    fi
done
    
por 05.05.2015 / 20:52