Al programar, elpara cada el comando 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, lista , eso es una lista de valores para asignar a varname . los cuerpo argumento es una secuencia de comandos Tcl. Para cada elemento de lista (en orden del primero al último),para cada asigna los contenidos del elemento a varname como si ellindexEl comando se usó para extraer el elemento, luego llama al intérprete de Tcl para ejecutar cuerpo .
Sinopsis
para cada nombre de la lista de nombres de var
para cada varlist1 list1 ? varlist2 list2 … ? cuerpo
Discusión
En un caso general, puede haber más de una lista de valores (por ejemplo, lista1 y lista2 ), 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, las variables de cada varlist Se asignan valores consecutivos de la correspondiente lista . Valores en cada lista se usan en orden del primero al último, y cada valor se usa exactamente una vez. El número total de iteraciones de bucle 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 usan valores vacíos para los elementos que faltan.
losdescanso ycontinuar las declaraciones pueden ser invocadas dentro cuerpo , con el mismo efecto que en el para mando. La Foreach devuelve una cadena vacía.
Ejemplos
El siguiente bucle utiliza yo y j como variables de bucle para iterar sobre pares de elementos de una sola lista.
set x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # El valor de x es "b a d c f e" # Hay 3 iteraciones del bucle.
El siguiente bucle utiliza yo y j iterar sobre dos listas en paralelo.
set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # El valor de x es "a d b e c f {} g" # Hay 4 iteraciones del bucle.
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 g c {} {}" # Hay 3 iteraciones del bucle.
Notas
Varios comandos relacionados trabajan conpara cada incluso:
- para (n)
- mientras (n)
- romper (n)
- continuar (n)
Debido a que la distribución de Linux y los niveles de lanzamiento del kernel varían, use el hombre comando % hombre ) para ver cómo se usa específicamente un comando en su computadora en particular.




