¿linux shell support lista de datos estructura?
bash ash (2)
esta pregunta no es lo mismo que ¿Se establece el soporte de shell?
Sé mucho de la estructura de la lista de soporte de lenguaje de scripts, como python, python, ruby y javascript, entonces ¿qué pasa con linux shell?
¿Shell soporta tal sintaxis?
for i in list:
do
print i
done
Primero quiero inicializar una lista , por ejemplo:
ListName = [ item1, item2, ..., itemn ]
luego itera sobre eso
¿Es eso posible cuando se programan scripts de shell?
Admite listas, pero no como una estructura de datos separada (ignorando las matrices por el momento).
El bucle for
itera sobre una lista (en el sentido genérico) de los valores separados del espacio en blanco, independientemente de cómo se cree esa lista, ya sea literalmente:
for i in 1 2 3; do
echo "$i"
done
o mediante la expansión de parámetros:
listVar="1 2 3"
for i in $listVar; do
echo "$i"
done
o sustitución de comando:
for i in $(echo 1; echo 2; echo 3); do
echo "$i"
done
Una matriz es solo un parámetro especial que puede contener una lista de valores más estructurada, donde cada elemento puede contener espacios en blanco. Compare la diferencia:
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
Para hacer una lista, simplemente haz eso
colors=(red orange white "light gray")
Técnicamente es una matriz, pero, por supuesto, tiene todas las características de la lista.
Incluso la lista de Python se implementa con una matriz