Script Shell 101. Tableaux Dans Les Scripts Shell

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 ?

Que Sont Les Tableaux Dans Les Scripts Shellnbsp

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 :

Tux Linux Penguin Sudo Rm Rf Hacker d Ordinateur T-Shirt
  • 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
BrosTrend 1200Mbps Linux USB Clé WiFi Adaptateurs de réseau, Ubuntu, Mint, Debian, Kali, Raspbian, Kubuntu, Lubuntu, Xubuntu, Zorin, Raspberry Pi 2+, Dual Band 5GHz 867Mbps, 2.4GHz 300Mbps
  • 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,...
Promo
Tapis de Souris en Ligne de Commandes Linux – Grand Tapis de Souris étendu. Raccourcis vers Le Programmeur Kali/Red Hat/Ubuntu/OpenSUSE/Arch/Debian/Unix. Tapis de Bureau de Jeu antidérapant
  • ✅ 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...