Utilisation de regex dans les déclarations de cas bash

Utilisation de regex dans les déclarations de cas bash
L'expression régulière ou l'expression regex serait des chaînes alphanumériques utilisées pour la création de requêtes de recherche. Des expressions régulières sont utilisées comme recherche et substitut tout en validant certaines conditions. Regex peut être utilisé dans la programmation bash ou tout autre langage de programmation. La plupart du temps, Regex est utilisable dans les instructions GREP et non dans les déclarations de cas. Ce guide verra comment les expressions régulières fonctionnent avec l'énoncé de cas tout en utilisant l'Ubuntu 20.04 Système Linux. Vous devez vous connecter à partir du système avant d'aller plus loin.

Exemple 01:

Plusieurs fois, les utilisateurs ont eu du mal à utiliser Regex (expressions régulières) dans les instructions «cas» parce que le «regex» ne fonctionne jamais dans les instructions de cas. En tant qu'alternative, le «grep» a toujours été utilisé au lieu d'une déclaration de cas pour une utilisation regexée dans Bash. Nous verrons un exemple simple pour voir comment le grep et le travail de cas tout en utilisant des expressions régulières. Alors, ouvrez la console terminale avant de vous déplacer plus loin via le raccourci «Ctrl + Alt + T». Après avoir ouvert le terminal, vous devez créer un nouveau fichier bash avec la requête tactile.

$ TOCK TEST.shot

Après la création du fichier bash, ouvrez-le pour ajouter le code bash. Pour cela, essayez la requête indiquée ci-dessous.

$ test nano.shot

Le fichier bash a été ouvert dans «l'éditeur GNU». Ajouter le code bash indiqué ci-dessous tel qu'il est dans le fichier bash. Ce code discutera de l'utilisation du Grep tandis que l'expression régulière a été utilisée. Ajouter d'abord l'extension bash. Nous avons déclaré une variable «S» ayant de l'espace et des chaînes comme valeur. La première instruction ECHO affiche le message que le regex a été utilisé avec «Grep» dans cet exemple de code. Dans la ligne suivante, nous avons utilisé l'instruction ECHO pour afficher la variable «S». Pendant que le grep, la commande a été utilisée pour rechercher le texte «word1» de la variable «s», qui correspond à l'expression régulière donnée dans l'image. Enregistrez votre code et laissez-le via «Ctrl + S» et «Ctrl + X» dans la ligne.

Il est temps d'exécuter notre fichier bash pour voir ses résultats. Nous avons donc utilisé la commande bash pour exécuter le fichier «Test.sh ”. La sortie montre le résultat de la variable «S» avec le message «avec grep». Cela indique que le regex fonctionne parfaitement dans les instructions GREP.

$ test.shot

Créons la même sortie pour les instructions de cas cette fois. Alors, ouvrez à nouveau votre fichier bash dans l'éditeur à l'aide de la requête «nano». Ajouter l'extension bash et définir une variable «S» avec une certaine valeur. Nous avons utilisé la déclaration «Echo» pour développer maintenant l'utilisation de l'instruction CAS. Nous avons commencé l'instruction de cas lors de la recherche de la variable «S» dans l'expression régulière définie dans le code. Lorsqu'il trouve la chaîne correspondante, elle doit imprimer la variable «S» dans le terminal. Ensuite, la déclaration de cas a été terminée par le mot-clé «ESAC».

Lors de l'exécution du fichier bash dans le terminal, il s'avère qu'il lance une exception disant «Erreur de syntaxe près de jeton inattendu dans [Expression]». Cela montre simplement que l'expression régulière ne fonctionne pas avec l'énoncé de cas.

$ Bash Test.shot

Exemple 02:

Jetons un coup d'œil à un autre exemple d'expressions de bash régulières. Cette fois, nous prendrons une expression régulière un peu différente pour explorer le fonctionnement de Regex. D'un autre côté, nous verrons Regex travailler dans la déclaration «IF» au lieu de la «déclaration de cas». Alors, ouvrez le «test.SH ”Fichier à nouveau.

$ test nano.shot

Au fur et à mesure que le fichier est ouvert maintenant, nous avons ajouté l'extension bash et en utilisant l'instruction «IF» pour démarrer la condition. Dans l'instruction «IF», ​​cela ne nous permet pas d'ajouter une expression régulière. C'est pourquoi nous avons utilisé l'expression «= ~» pour instancier le regex dans le code. Dans cette condition, nous avons ajouté le regex en utilisant «$» comme expression régulière valide. Lorsque le caractère ajouté correspond à la condition d'expression régulière dans l'instruction «IF», ​​elle doit enregistrer cette expression dans une variable «n» et imprimer «valide». Si la condition ne satisfait pas, elle doit imprimer «non valide» dans le terminal et fermer la déclaration «IF». Enregistrez simplement le fichier par le raccourci «Ctrl + S» et laissez l'éditeur par «Ctrl + X».

Maintenant, retournant au terminal, nous avons essayé l'instruction d'exécution de Bash pour exécuter le fichier «Test.sh ”trois fois en analysant certains caractères et symboles. Nous avons ajouté les personnages @, # et f cette fois. Tous les personnages ont été déclarés «non valides» selon le code bash. C'est parce que nous avons utilisé l'expression régulière pour prendre «$» uniquement comme valide.

$ Bash Test.shot

Prenons «$» cette fois dans la requête d'exécution pour tester comment cela fonctionne. Il s'avère que le «$» est une expression valide, et il imprime la sortie «valide» dans le shell de la console.

$ Bash Test.shot

Exemple 03:

Ayons un exemple différent et simple d'utiliser l'expression régulière dans l'instruction de cas. Encore une fois, ouvrons le test de bash «Test.SH ”Fichier au sein de l'éditeur de l'Ubuntu 20.04 Système.

$ test nano.shot

Comme le test.Le fichier SH Bash a été lancé dans le GNU Nano 4.8 éditeur du terminal, ajoutez l'extension bash au début d'un fichier. Après cela, nous avons utilisé l'instruction «lire» avec l'indicateur «-p» pour prendre les entrées comme nom de serveur de l'utilisateur. Ce nom de serveur en tant qu'entrée serait enregistré dans la variable «serveur». Ce serveur doit être une URL du serveur de domaine. Nous allons maintenant utiliser la déclaration de cas ici pour tester l'expression régulière. Ainsi, nous avons commencé l'instruction de cas avec le serveur de variables pour vérifier si le domaine de serveur d'entrée ajouté correspond aux autres instructions mentionnées dans l'instruction de cas ou non. Lorsque la valeur «serveur» variable correspondait au ws *.@héberger.com, il utilisera l'instruction ECHO pour afficher que ce domaine est «serveur Web». S'il correspond à db *.@héberger.com, il utilisera l'instruction «Echo» pour afficher que le serveur est un «serveur DB». Si le domaine est bk *.@héberger.com, il montre le «serveur de sauvegarde». Sinon, il affichera que le serveur est inconnu. L'astérisque représente le regex. Après cela, la déclaration de cas sera fermée par le mot-clé «ESAC» dans le script. Enregistrez ce code et sortez-le en utilisant les mêmes raccourcis «Ctrl + S» et «Ctrl + X».

Revenons maintenant au terminal, testons ce code bash en exécutant la commande bash avec le nom d'un test.fichier SH. Après l'exécution, il demande à l'utilisateur d'ajouter le nom d'utilisateur. Nous avons ajouté un nom de serveur «WS» valide avec 1234 en tant que regex et appuyé sur Entrée. Il montre que la syntaxe du serveur correspond au «serveur Web».

Nous avons fait une autre exécution, et cette fois, nous avons changé la syntaxe d'un serveur. Comme le point a été manqué à l'URL du domaine, il affiche que le serveur est inconnu.

Lorsque nous avons ajouté un domaine similaire et correct, il affiche le nom d'un serveur.

Conclusion:

Dans ce tutoriel, nous avons discuté de la façon d'utiliser une déclaration de cas dans Bash pour utiliser des expressions régulières. Nous espérons que cet article vous a aidé à son meilleur pour éliminer les doutes et les complications.