use bash arrays (bash-lists.md)
This commit is contained in:
parent
d560cec71c
commit
915cabffd5
82
docs/divers/cmd/bash-lists.md
Normal file
82
docs/divers/cmd/bash-lists.md
Normal file
@ -0,0 +1,82 @@
|
||||
# Les listes et les dictionnaires avec Bash
|
||||
|
||||
## Les listes (`indexed array`)
|
||||
|
||||
### Création d'une liste
|
||||
|
||||
```
|
||||
declare -a MA_LIST
|
||||
```
|
||||
|
||||
### Modification de la liste
|
||||
|
||||
1. Ajout d'éléments
|
||||
```
|
||||
MA_LIST=(1er_element 2nd_element)
|
||||
MA_LIST+=("3eme élément avec des espaces")
|
||||
MA_LIST[3]="4eme élémént"
|
||||
```
|
||||
2. Changement de valeur d'un élément
|
||||
```
|
||||
MA_LIST[0]="la nouvelle valeur qu'on met pour le 1er élément"
|
||||
MA_LIST[1]="la valeur pour le 2eme élément"
|
||||
```
|
||||
3. Traitement sur l'ensemble des éléments
|
||||
- en utilisant la liste des index `${!MA_LIST[@]}`:
|
||||
```
|
||||
for i in "${!MA_LIST[@]}" ; do
|
||||
echo "index = $i - value = ${MA_LIST[i]}"
|
||||
done
|
||||
```
|
||||
- en utilisant la liste des valeurs `${MA_LIST[@]}`
|
||||
```
|
||||
for i in "${MA_LIST[@]}" ; do
|
||||
echo "value = ${i}"
|
||||
done
|
||||
```
|
||||
- nombre d'éléments:
|
||||
```
|
||||
echo "nombre d'éléments : ${MA_LIST[]}
|
||||
```
|
||||
|
||||
## Les tableaux (`associative arrays`)
|
||||
|
||||
### Création d'un tableau
|
||||
```
|
||||
declare -A MY_ARRAY
|
||||
```
|
||||
|
||||
1. Ajout d'éléments
|
||||
```
|
||||
MY_ARRAY=([clé1]=1er_element [clé2]=2nd_element)
|
||||
MY_ARRAY+=([clé3]="3eme élément avec des espaces")
|
||||
MY_ARRAY[dernière_clé]="4eme élément"
|
||||
```
|
||||
2. Changement de valeur d'un élément
|
||||
```
|
||||
MY_ARRAY[clé1]="la nouvelle valeur qu'on met pour l'élément associé à `clé1`"
|
||||
```
|
||||
3. Traitement sur l'ensemble des éléments
|
||||
- en utilisant la liste des clés `${!MY_ARRAY[@]}`:
|
||||
```
|
||||
for i in "${!MY_ARRAY[@]}" ; do
|
||||
echo "key = $i - value = ${MY_ARRAY[i]}"
|
||||
done
|
||||
```
|
||||
- en utilisant la liste des valeurs `${MY_ARRAY[@]}`
|
||||
```
|
||||
for i in "${MY_ARRAY[@]}" ; do
|
||||
echo "value = ${i}"
|
||||
done
|
||||
```
|
||||
- nombre d'éléments:
|
||||
```
|
||||
echo "nombre d'éléments : ${MY_ARRAY[]}
|
||||
```
|
||||
|
||||
|
||||
!!! info
|
||||
Pour aller plus loin (en anglais):
|
||||
- [linuxjournal.com](https://www.linuxjournal.com/content/bash-arrays)
|
||||
- [le manuel bash](https://www.gnu.org/software/bash/manual/html_node/Arrays.html)
|
||||
- [opensource.com](https://opensource.com/article/18/5/you-dont-know-bash-intro-bash-arrays)
|
||||
@ -6,3 +6,4 @@
|
||||
- [Monter une partition](mount.md)
|
||||
- [read](read.md), pour permettre à l'utilisateur d'interagir avec un script (user prompt / user input)
|
||||
- [heredoc](heredoc.md), le fameux `EOF`, pour afficher du contenu sur plusieurs lignes
|
||||
- [listes et dictionnaires avec Bash](bash-lists.md)
|
||||
@ -78,6 +78,7 @@ nav:
|
||||
- divers/cmd/mount.md
|
||||
- divers/cmd/read.md
|
||||
- divers/cmd/heredoc.md
|
||||
- "Bash: Listes": divers/cmd/bash-lists.md
|
||||
- "Admin Sys":
|
||||
- divers/admin/index.md
|
||||
- "Installer Adobe pdf reader": divers/admin/acroread-debian.md
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user