Test d'existence des packages
Bonjour,
Je fais un petit script pour tester l'existence des packages et s'ils sont installés ou non.
Le script principal appel un fichier ou chaque ligne indique le package en question :
apache2
postfix
azerty
apache2 est présent et installé, postfix est présent mais pas installé et azerty est inexistant
Le code ci-dessus vous montre le script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| INSTALL_PATH=/tmp
>$INSTALL_PATH/pkg_installable
>$INSTALL_PATH/pkg_installed
>$INSTALL_PATH/pkg_no_installed
for PACKAGE in `cat $INSTALL_PATH/pkg_list.txt | grep -v "#" | grep -vx "" | sed ':a;N;$!ba;s/\n/\ /g'`
do
#echo "$PACKAGE"
if [ -z `apt-cache pkgnames | grep -q $PACKAGE` ]
then
if [ -z `apt-cache policy $PACKAGE | grep Installé | grep aucun` ]
then
echo "$PACKAGE Paquet non installé"
echo "$PACKAGE" >>$INSTALL_PATH/pkg_no_installed
else
echo "$PACKAGE Paquet installé"
echo "$PACKAGE" >>$INSTALL_PATH/pkg_installed
fi
else
echo "$PACKAGE Aucun paquet"
echo "$PACKAGE" >>$INSTALL_PATH/pkg_installable
fi
done |
Hors j'obtiens le résultats suivant qui ne correspond pas à la réalité :
Code:
1 2 3 4
| apache2 Paquet non installé
./script.sh: ligne 12 : [: Installé : : opérateur binaire attendu
postfix Paquet installé
azerty Paquet non installé |
Je devrais avoir en sortie :
Code:
1 2 3
| apache2 Paquet installé
postfix Paquet non installé
azerty Aucun paquet |
Merci de m'éclairer, je ne vois pas où je fais l'erreur...