Dans le didacticiel précédent sur les scripts shell, nous avons travaillé avec des variables simples dans des scripts shell . Aujourd’hui, nous aborderons les tableaux dans les scripts shell et comment nous pouvons créer et utiliser des tableaux dans nos scripts.
Pour déclarer ou créer des tableaux à la volée, nous utiliserons la commande declare (plus explicite) ou écrirons directement array_name=(element1 element2 …) . Il existe d’autres façons de créer des tableaux et d’y accéder et dans ce didacticiel, nous entrerons dans les détails autant que possible.
Que Sont Les Tableaux Dans Les Scripts Shell ?
Les variables peuvent stocker des valeurs uniques. Les tableaux, en revanche, peuvent y stocker des valeurs pratiquement illimitées où chaque valeur est indexée à partir de l’index 0 pour la première valeur.
Tableaux vs Illustration de variables régulières
Lorsque vous créez des scripts qui interagissent avec un grand nombre de valeurs, il est plus efficace d’utiliser des tableaux au lieu de créer un grand nombre de variables individuelles.
Comment Créer Des Tableaux Dans Des Scripts Shell ?
Nous pouvons soit déclarer un tableau associatif ou indexé puis attribuer les valeurs, soit créer directement un tableau avec les valeurs. Voyons un exemple des trois cas.
Les tableaux sont au format array_name=value .
Pour créer un tableau indexé, nous utiliserons la commande declare avec l’ option -a . Une option indexée ne vous oblige pas à déclarer explicitement un indice. Si vous spécifiez un indice, le tableau l’utilise. Lorsqu’aucun indice n’est spécifié, il indexera automatiquement les éléments commençant par 0.
root@ubuntu:~# declare -a index_array root@ubuntu:~# index_array+=("premier élément")
Tableau d’index
Pour un tableau associatif, nous utiliserons l’ option -A de la commande declare. Avec les tableaux associatifs, nous devons spécifier explicitement quel sera l’indice, sinon nous recevons une erreur.
root@ubuntu:~# declare -A assoc_array root@ubuntu:~# assoc_array+=("premier élément") -bash : assoc_array : "premier élément" : doit utiliser un indice lors de l'attribution d'un tableau associatif root@ubuntu:~# assoc_array+=(="premier élément")
Tableau Assoc sans indice
Comme vous pouvez le voir, le tableau associatif n’acceptera tout simplement pas les valeurs à moins qu’elles ne soient fournies dans une paire clé-valeur. Mais vous n’avez pas besoin de déclarer un tableau au préalable. Vous pouvez simplement affecter les valeurs au tableau.
Travaillons maintenant avec un tableau auquel nous affectons des valeurs à la volée sans déclarer le nom au préalable.
root@ubuntu:~# array=("premier élément" "deuxième élément") root@ubuntu:~# array2=(="premier élément" ="deuxième élément")
Configuration des tableaux à la volée
Les deux commandes ci-dessus sont correctes et les tableaux dans les scripts shell seront automatiquement « typés » en tableaux associatifs ou indexés en fonction des valeurs fournies.
Sortie Des Valeurs De Tableau
Maintenant que nous avons appris à créer des tableaux dans des scripts shell, voyons comment nous pouvons les afficher. Nous continuerons à utiliser la commande echo pour voir différentes manières de générer un tableau.
Utilisons la commande echo sur la variable tableau que nous avons construite à la volée : array . La notation € est utilisée pour signifier un tableau (reportez-vous à l’article sur les variables dans un script shell pour en savoir plus)
root@ubuntu:~# echo €array premier élément
Comme vous pouvez le voir, il ne sort que le premier élément. Mais pourquoi est-ce ainsi ? S’il s’agissait d’une variable, nous aurions reçu l’intégralité de la sortie.
La raison pour laquelle il ne sort que le premier élément est que lorsque nous ne spécifions pas d’index lorsque nous essayons de sortir des tableaux dans des scripts shell, il supposera un index . On précisera donc ou .
root@ubuntu:~# echo €array premier élément deuxième élément
Maintenant, vous remarquerez peut-être l’utilisation d’accolades ici. Ceux-ci sont utilisés pour mentionner explicitement que toute la partie à partir du tableau jusqu’à doit être considérée comme une. Si nous n’utilisons pas les accolades, voici ce que sera la sortie.
Sortie de matrice sans crochets
Logique? Super! Allons maintenant plus loin.
Comment imprimer une plage d’éléments ? Nous pouvons le faire sans trop d’effort en utilisant la section d’index pour découper la sortie.
€array_name:START-INDEX:NUMBER-OF-ELEMENTS
root@ubuntu:~# echo €array:0:1 premier élément
Si nous supprimons le NOMBRE-DE-ÉLÉMENTS, la sortie imprimera tous les éléments à partir du START-INDEX.
Diverses Opérations De Tableau Dans Le Script Shell
Nous pouvons compter, supprimer et remplacer des éléments dans le tableau avec de vraies commandes simples. Voyons comment.
Comment Compter Le Nombre D’éléments Dans Les Tableaux
Il peut arriver que nous ayons besoin de connaître le nombre exact d’éléments pour les tableaux dans les scripts shell où les éléments sont ajoutés à la volée. J’ajouterai un signe dièse/dièse (#) à la commande echo que nous avons utilisée auparavant pour imprimer l’intégralité du tableau. Cela nous donnera le nombre d’éléments dans un tableau.
root@ubuntu:~# echo € 2
Comme vous le savez déjà, nous avons deux éléments dans notre tableau.
Comment Compter Le Nombre De Caractères D’un élément De Tableau
Semblable à l’exemple ci-dessus, si nous modifions le avec l’index de l’élément, nous obtiendrons une sortie sous forme de nombre de caractères.
root@ubuntu:~# echo € 11
Remplacer Des Caractères Spécifiques D’un Tableau
Lors de l’utilisation de tableaux dans des scripts shell, il y aura des moments où nous devrons apporter des modifications aux éléments existants dans le tableau à la volée. Semblable à find and replace , nous pouvons rechercher et remplacer des caractères ou des mots spécifiques dans un tableau ou un élément de tableau. Remplaçons le mot « item » par « ITEM » dans notre tableau.
root@ubuntu:~# echo €array premier élément deuxième élément root@ubuntu:~# echo €array//item/ITEM premier ÉLÉMENT deuxième ÉLÉMENT
Élément de remplacement du tableau Regex
Supprimer Un élément De Tableau Ou Un Tableau Entier
Lorsque vous traitez plusieurs tableaux dans des scripts shell avec divers éléments, vous devez parfois vous assurer que des valeurs ou des tableaux entiers sont éliminés du script. Pour supprimer un élément d’un tableau, nous utiliserons la commande unset et spécifierons l’index de l’élément.
root@ubuntu:~# echo €array premier élément deuxième élément root@ubuntu:~# tableau non défini root@ubuntu:~# echo €array premier élément
Élément de tableau non défini
Si vous souhaitez supprimer des tableaux entiers dans des scripts shell, vous pouvez utiliser la commande unset sans index.
root@ubuntu:~# echo €array premier élément root@ubuntu:~# tableau non défini root@ubuntu:~# echo €array
Unset Complete Array
Conclusion
Ce didacticiel devrait vous aider à vous familiariser avec les tableaux dans les scripts shell. Dans les futurs didacticiels, nous couvrirons les boucles et les conditions qui vous permettront d’interagir avec les tableaux de manière bien meilleure.
Références pour cet article :
- Sudo Rm Rf ne peut être exécuté que par un vrai ninja du clavier et sans...
- Un cadeau parfait pour tout programmeur, codeur, développeur web,...
- Léger, Coupe classique, manche à double couture et ourlet à la base
- MULTI-OS SUPPORTÉ : Compatible avec les noyaux Linux jusqu'à 6.7, Ubuntu...
- ARCHITECTURES SUPPORTÉES : x86_64/x86_32 (PC, VirtualBox...), aarch64/armhf...
- VITESSE WI-FI RAPIDE : Vous pouvez obtenir une vitesse Wi-Fi de 867Mbps sur la...
- MULTIPLES MODES DE FONCTIONNEMENT : Cet Linux clef USB WiFi prend en charge les...
- SÉCURITÉ D'ENCRYPTAGE AVANCÉE : Sécurisez vos appareils et la...
- DISTRIBUTIONS NON PRISES EN CHARGE : Actuellement NON compatible avec RHEL,...
- ✅ TAILLE GRANDE ET PARFAITE. La taille de 800 x 300 x 2 mm (31,5 x 11,8 x 0,09...
- ✅ COMPILATION ÉTENDUE de lignes de commande couramment utilisées pour le...
- ✅ GUIDE INTÉGRAL PARFAIT pour les programmeurs débutants et expérimentés...
- ✅ BIEN CATÉGORISÉ - Les lignes de commande sont organisées de manière...
- ✅ RÉFÉRENCE FONCTIONNELLE - Cette référence concise à la syntaxe Linux...
- ✅ SANS COUTURE ET CONFORT – Tissu doux densément collé avec bords cousus...
- ✅ IMPRESSION DE HAUTE QUALITÉ – Imprimé numériquement avec des encres de...
- ✅ La base en caoutchouc naturel robuste et antidérapante offre une forte...
- ✅ DURABLE - Protège votre bureau en verre/bois des rayures, des bosses et des...
- ✅ CADEAU IDÉAL pour les collègues, les étudiants, les joueurs, les...