bash, tester si un programme est installé
2012-09-21
Pour tester si un programme est installé, on peut utiliser la commande which
de différentes manières.
La première en comptabilisant le nombre de lignes retournées.
if [ $(which sponge | wc -l) -eq 0 ]; then
echo "Installer le paquet 'moreutils'."
echo "sudo apt-get install moreutils"
exit 1
fi
La seconde en utilisant le code de retour de la commande.
if ! which sponge >/dev/null; then
echo "Installer le paquet 'moreutils'."
echo "sudo apt-get install moreutils"
exit 1
fi
La seconde est plus lisible, pas besoin de décrypter.
C’est seulement dommage qu’on ne puisse pas ajouter un paramètre à la commande pour ne pas écrire sur la sortie standard et que l’on soit obligé de rediriger dans /dev/null
.
A chacun sa préférence.