linux bash shell ash

¿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