Test d’inégalité entre deux chaînes
Objectif
Tester si une variable est différente d’une valeur.
Exemple
La variable choix est-elle différente de la valeur "oui" ?
Première méthode (ksh, bash)
Utilisation de la commande de test [[ ]] :
$ [[ $choix != oui ]] && echo '$choix est different de oui'
(cf. chapitre Les bases de la programmation shell - Exécution de tests)
Deuxième méthode
Utilisation de la commande de test [ ] :
$ [ "$choix" != oui ] && echo '$choix est different de oui'
Contrairement à la commande [[ ]], la commande [ ] provoque une erreur si l’expression $choix est vide et non placée entre guillemets (les guillemets n’empêchant pas la substitution de la variable).
(cf. chapitre Les bases de la programmation shell - Exécution de tests)
Troisième méthode
Utilisation de la commande grep avec option de négation -v et d’une expression régulière :
$ echo $choix | grep -aqE '^oui$' && echo
'$choix est different de oui'
(cf. chapitre Les expressions régulières - Exploitation des expressions régulières par les commandes)
Quatrième méthode
Utilisation de la commande awk et d’une expression régulière :
$ echo $choix | awk '$0 !~ /^oui$/ {print "$choix est different de oui"}'
(cf. chapitre Le langage de programmation...