<Précédent | Table des matières | Suivant>
Conversion de cas
Les versions récentes de bash ont un support pour la conversion majuscule/minuscule des chaînes. bash
a quatre extensions de paramètres et deux options pour le déclarer commande pour le soutenir.
Alors à quoi sert la conversion de cas ? Outre la valeur esthétique évidente, il a un rôle important dans la programmation. Considérons le cas d'une recherche dans une base de données. Imaginez qu'un utilisateur ait entré une chaîne dans un champ de saisie de données que nous souhaitons rechercher dans une base de données. Il est possible que l'utilisateur entre la valeur dans toutes les lettres majuscules ou minuscules ou une combinaison des deux. Nous ne voulons certainement pas remplir notre base de données avec toutes les permutations possibles d'orthographe en majuscules et en minuscules. Que faire?
Une approche courante de ce problème consiste à normaliser l'entrée de l'utilisateur. C'est-à-dire le convertir
sous une forme standardisée avant de tenter la recherche dans la base de données. Nous pouvons le faire en convertissant tous les caractères saisis par l'utilisateur en minuscules ou en majuscules et en veillant à ce que les entrées de la base de données soient normalisées de la même manière.
Le déclarer La commande peut être utilisée pour normaliser les chaînes en majuscules ou en minuscules. À l'aide de déclarer, on peut forcer une variable à toujours contenir le format souhaité peu importe ce qui lui est assigné :
#! / Bin / bash
# ul-declare : démonstration de la conversion de casse via declare declare -u upper
déclarer -l inférieur
si [[ $1 ]] ; alors
supérieur="$1" inférieur="$1" echo $supérieur echo $inférieur
fi
#! / Bin / bash
# ul-declare : démonstration de la conversion de casse via declare declare -u upper
déclarer -l inférieur
si [[ $1 ]] ; alors
supérieur="$1" inférieur="$1" echo $supérieur echo $inférieur
fi
Dans le script ci-dessus, nous utilisons déclarer pour créer deux variables, supérieur et les baisser. Nous attribuons la valeur du premier argument de la ligne de commande (paramètre positionnel 1) à chacune des variables puis les affichons à l'écran :
[moi@linuxbox ~]$ ul-déclarer aBc
abc
abc
[moi@linuxbox ~]$ ul-déclarer aBc
abc
abc
Comme nous pouvons le voir, l'argument de la ligne de commande ("aBc") a été normalisé.
En plus des déclarer, il existe quatre extensions de paramètres qui effectuent la conversion majuscule/minuscule :
Tableau 34-1 : Extensions des paramètres de conversion de cas
Formater le résultat
Formater le résultat
${paramètre,,} Augmenter la valeur de paramètre en minuscules.
${paramètre,} Augmenter la valeur de paramètre changer seulement le premier
caractère en minuscule.
${paramètre^^} Augmenter la valeur de paramètre dans toutes les lettres majuscules.
${paramètre^} Augmenter la valeur de paramètre changer seulement le premier
caractère en majuscule (majuscule).
Voici un script qui illustre ces extensions :
#! / Bin / bash
# ul-param : démonstration de la conversion de casse via l'expansion des paramètres if [[ $1 ]] ; alors
écho ${1,,}
écho ${1,} écho ${1^^} écho ${1^}
fi
#! / Bin / bash
# ul-param : démonstration de la conversion de casse via l'expansion des paramètres if [[ $1 ]] ; alors
écho ${1,,}
écho ${1,} écho ${1^^} écho ${1^}
fi
Voici le script en action :
[moi@linuxbox ~]$ ul-param ABC
abc abc ABC
Abc
[moi@linuxbox ~]$ ul-param ABC
abc abc ABC
Abc
Encore une fois, nous traitons le premier argument de la ligne de commande et affichons les quatre variantes prises en charge par les développements de paramètres. Bien que ce script utilise le premier paramètre positionnel, paramètre peut être n'importe quelle chaîne, variable ou expression de chaîne.