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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...