Programmation BASH

Comment utiliser $IFS dans Bash?

Comment utiliser $IFS dans Bash?
Dans les scripts, nous devons casser les données de chaîne pour diverses raisons. Split est une fonctionnalité intégrée dans de nombreux langages informatiques qui divise chaque chaîne de données en plusieurs parties. Cependant, bash n'a pas de fonctionnalité intégrée pour diviser une chaîne. Pour casser n'importe quelle valeur de chaîne, il existe de nombreux délimiteurs simples et composés à utiliser. Une variable IFS (Internal Field Separator) est utilisée pour spécifier un délimiteur particulier pour la division de chaîne. Dans ce guide, vous apprendrez à utiliser diverses méthodes pour illustrer le processus de rupture d'une valeur de chaîne dans bash à l'aide de $IFS.

Conditions préalables

Assurez-vous que le système basé sur Linux est installé et configuré. Nous allons travailler sur Ubuntu 20.04 Système Linux. Connectez-vous à partir de l'utilisateur de votre compte Ubuntu pour commencer à travailler sur IFS. Ce sera mieux si vous vous connectez depuis votre compte utilisateur root. Après vous être connecté, lancez le terminal de ligne de commande dans votre système à partir de la zone d'activité.

Exemple 01 : IFS divise une chaîne en utilisant l'espace comme valeur

Pour notre premier exemple, nous comprendrons le concept de fractionnement d'une chaîne en bash tout en utilisant l'espace comme valeur de délimiteur à l'aide de la variable IFS. Tout d'abord, nous devons créer un fichier bash dans notre système. Nous pouvons créer de nouveaux fichiers dans notre système Linux en utilisant la commande 'touch'. Comme indiqué ci-dessous, nous avons créé un fichier bash 'file1.sh' en utilisant l'instruction 'touch' :

$ touchez le fichier1.sh

Ouvrez le répertoire Home de votre système Linux à l'aide de l'icône de dossier affichée dans le coin gauche de votre Ubuntu 20.04 bureau. Vous trouverez votre fichier bash nouvellement créé "file1.sh" dedans. Ouvrez le fichier "fichier1.sh" et tapez le script ci-dessous. Tout d'abord, nous avons défini une chaîne nommée "str" ​​avec une valeur de chaîne dedans. Ensuite, nous définissons une variable délimiteur IFS comme une variable ayant un espace comme valeur. Après cela, nous avons utilisé l'instruction read pour enregistrer et lire les données fractionnées dans un tableau "strarr" à l'aide du drapeau "-a". Une instruction 'echo' est utilisée pour imprimer une ligne de chaîne avec le nombre total de mots d'un tableau en utilisant le "$#strarr[*]". La boucle "for" permet d'imprimer les valeurs d'un tableau sous forme fractionnée à l'aide de la variable "var". La barre oblique inverse "\n" avait été utilisée dans la ligne d'impression avec la variable "var" pour donner une coupure d'une ligne après chaque valeur du tableau. Enregistrez le script à l'aide de la touche « Ctrl+S » et fermez le fichier pour continuer.

Revenez côté terminal. Maintenant, nous allons vérifier la sortie du code ci-dessus. Pour cela, nous utiliserons la commande 'bash' avec le nom d'un fichier "file1.sh" pour l'exécuter, ce qui est indiqué ci-dessous. Tout d'abord, il a affiché la ligne mentionnée dans l'instruction « echo » avec le nombre de mots d'un tableau. Après cela, il a affiché toutes les valeurs du tableau en utilisant la boucle "for" divisée par IFS.

$ bash fichier1.sh

Exemple 02 : IFS divise une chaîne en utilisant le caractère comme valeur

Dans l'exemple mentionné ci-dessus, vous avez vu comment diviser les variables de chaîne en parties tout en utilisant l'espace comme délimiteur de IFS. Maintenant, nous allons utiliser un caractère pour diviser une chaîne à l'aide d'un délimiteur IFS. Ouvrez votre terminal de commande et créez un nouveau fichier bash "file2.sh" dans votre répertoire personnel du système Linux à l'aide de la commande "touch" comme suit :

$ touch file2.sh

Ouvrez le répertoire personnel de votre système Linux. Vous y trouverez votre fichier nouvellement créé. Ouvrez votre fichier nouvellement créé et écrivez le code bash présenté ci-dessous. Sur la ligne 3, nous avons lancé une instruction « echo » pour imprimer une ligne. La ligne suivante lit l'entrée donnée par un utilisateur dans un terminal en utilisant le mot-clé "read". Ensuite, nous avons défini le délimiteur « IFS » et défini la virgule « », comme valeur de caractère. Une autre instruction "read" a été spécifiée pour lire et enregistrer les valeurs séparées par des virgules d'une chaîne entrée par un utilisateur dans un tableau "strarr". Enfin, nous avons lancé trois instructions d'écho pour imprimer les valeurs séparées par des virgules en tant que variables, comme indiqué dans l'image. Enregistrer et fermer ce fichier.

Maintenant, nous devons exécuter ce fichier enregistré. Exécutez la commande bash ci-dessous suivie du nom d'un fichier dans un terminal pour le faire. Vous devez ajouter une valeur de chaîne qui doit contenir une virgule "," dans les valeurs, et appuyez sur le bouton Entrée. Maintenant, vos données ont été enregistrées dans un tableau « strarr ». Les trois dernières lignes montrent la sortie des instructions « echo ». Vous pouvez voir que chaque texte avant et après la virgule a été utilisé comme valeur distincte.

$ bash fichier2.sh

Exemple 03 : Chaîne de fractionnement IFS

Nous avons fait les deux exemples précédents dans un fichier bash. Nous aurons maintenant une illustration de l'utilisation de « IFS » sans créer de fichier bash. Ouvrez votre shell de commande pour le faire. Tout d'abord, nous devons créer une chaîne "var" avec une valeur de chaîne dedans. Cette chaîne contient des virgules après chaque mot.

$ var="Salut, j'ai 25 ans, j'ai l'âge."

Ensuite, initialisez la variable 'IFS' avec la virgule de caractère comme valeur de délimiteur.

$ IFS=,

Après cela, nous avons utilisé la boucle "for" pour rechercher chaque mot de la variable "var" séparé par une virgule de délimiteur IFS et l'imprimer à l'aide de l'instruction "echo".

$ pour i dans $var
> faire
>écho [$i]
> Terminé

Vous aurez la sortie ci-dessous. Il affichera chaque mot d'une variable de chaîne « var » sur une nouvelle ligne à cause de la virgule du délimiteur « », utilisé comme caractère divisé.

Conclusion:

Dans ce guide, vous avez appris une variété de méthodes pour diviser les valeurs d'entrée dans un bash, e.g., avec un espace ou avec un caractère. Nous espérons que les illustrations mentionnées dans ce tutoriel vous aideront à casser chaque chaîne à l'aide du délimiteur IFS.

Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...