C√≥mo construir iteradores de listas con el comando ¬ęforeach¬Ľ de Linux


Al programar, el comando foreach implementa un bucle donde las variables del bucle asumen los valores de una o m√°s listas. En el caso m√°s simple hay una variable de bucle, varname, y una lista, list, que es una lista de valores a asignar a varname. El argumento body es un script Tcl. Para cada elemento de list (en orden del primero al √ļltimo), foreach asigna el contenido del elemento a varname como si el comando lindex hubiera sido usado para extraer el elemento, luego llama al int√©rprete Tcl para ejecutar body.

Sinopsis

foreach varname list body

foreach varlist1 list1 ? varlist2 lista2 …? body

Discusión

En un caso general, puede haber m√°s de una lista de valores (por ejemplo, list1 y list2), y cada lista de valores puede asociarse con una lista de variables de bucle (por ejemplo, varlist1 y varlist2). Durante cada iteraci√≥n del bucle, a las variables de cada varlist se les asignan valores consecutivos de la correspondiente lista. Los valores de cada lista se utilizan en orden de principio a fin, y cada valor se utiliza exactamente una vez. El n√ļmero total de iteraciones de bucles es lo suficientemente grande como para utilizar todos los valores de todas las listas de valores. Si una lista de valores no contiene suficientes elementos para cada una de sus variables de bucle en cada iteraci√≥n, se utilizan valores vac√≠os para los elementos que faltan.

Las sentencias break y continue pueden invocarse dentro body, con el mismo efecto que en el comando for . La f oreach devuelve una cadena vacía.

Ejemplos

El siguiente bucle utiliza i y j como variables de bucle para iterar sobre pares de elementos de una misma lista.

pre>set x {}foreach {i j} {a b c d e f} {lappend x $j $j $j $i}# El valor de x es ¬ęb a d c f e ¬ę# Hay 3 iteraciones del bucle.

El siguiente bucle utiliza i y j para iterar sobre dos listas en paralelo.

pre>set x {}para cada uno i {a b c} j {d e f g}} xlappend x $i $j}# El valor de x es ¬ęa d b e c f {} g ¬ę# Hay 4 iteraciones del loop.

Las dos formas se combinan en el siguiente ejemplo.

set x {}foreach i {a b c} {j k} {d e f g} {lappend x $i $j $k}# El valor de x es "a d e b f f g c {} Hay 3 iteraciones del bucle.

Notas

Varios comandos relacionados trabajan con foreach incluyendo:

  • para(n)
  • while(n)
  • pausa(n)
  • continuar(n)

Debido a que la distribuci√≥n de Linux y los niveles de liberaci√≥n del n√ļcleo var√≠an, utilice el comando man ( % man) para ver c√≥mo se usa espec√≠ficamente un comando en su equipo particular.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *