cette question n'est pas la même chose que Est-ce que Shell prend en charge les ensembles?
je connais beaucoup de structures de liste de support de langage de script, telles que python, python, Ruby et javascript. Qu'en est-il du shell linux?
shell prend-il en charge une telle syntaxe?
for i in list:
do
print i
done
je voudrais d’abord initialiser une liste , par exemple:
ListName = [ item1, item2, ..., itemn ]
puis parcourez-le
est-ce possible lors de la programmation de scripts shell?
Il supporte les listes, mais pas en tant que structure de données séparée (en ignorant les tableaux pour le moment).
La boucle for
parcourt une liste (au sens générique) de valeurs séparées par des espaces, quelle que soit la manière dont cette liste est créée, que ce soit littéralement:
for i in 1 2 3; do
echo "$i"
done
ou par expansion de paramètre:
listVar="1 2 3"
for i in $listVar; do
echo "$i"
done
ou substitution de commande:
for i in $(echo 1; echo 2; echo 3); do
echo "$i"
done
Un tableau est juste un paramètre spécial qui peut contenir une liste de valeurs plus structurée, chaque élément pouvant lui-même contenir des espaces. Comparez la différence:
array=("item 1" "item 2" "item 3")
for i in "${array[@]}"; do # The quotes are necessary here
echo "$i"
done
list='"item 1" "item 2" "item 3"'
for i in $list; do
echo $i
done
for i in "$list"; do
echo $i
done
for i in ${array[@]}; do
echo $i
done
Pour faire une liste, il suffit de le faire
colors=(red orange white "light gray")
Techniquement, c'est un tableau, mais - bien sûr - il a toutes les fonctionnalités de la liste.
Even python list sont implémentés avec array