Quan programeu, elper cadascú comanda implementa un bucle on les variables del bucle assumeixen els valors d'una o més llistes. En el cas més senzill hi ha una variable variable, varname , i una llista, llista , que és una llista de valors a assignar varname . El cos L'argument és un script de Tcl. Per a cada element de llista (en ordre de primer a últim),per cadascú assigna els continguts de l'element a varname com si elLindexS'ha utilitzat l'ordre per extreure l'element i, a continuació, s'explica l'intèrpret Tcl cos .
Sinopsi
per cadascú cos de la llista de varname
per cadascú varlist1 llista1 ? varlist2 llista2 … ? cos
Debat
En un cas general, pot haver-hi més d'una llista de valors (p. Ex., llista1 i llista2 ), i cada llista de valors es pot associar a una llista de variables de bucle (p. ex., varlist1 i varlist2 ). Durant cada iteració del cicle, les variables de cadascuna varlist s'assignen valors consecutius del corresponent llista . Valors en cadascun llista s'utilitzen en ordre de primer a últim, i cada valor s'utilitza exactament una vegada. El nombre total d'iteracions de bucle és prou gran per utilitzar tots els valors de totes les llistes de valors. Si una llista de valors no conté elements suficients per a cadascuna de les seves variables de bucle en cada iteració, s'utilitzen valors buits per als elements que falten.
Eltrencar icontinueu Es poden invocar declaracions a l'interior cos , amb el mateix efecte que a la per a comandament. El foeach torna una cadena buida.
Exemples
S'utilitza el següent bucle i i j com a variables de bucle per iterar sobre parells d'elements d'una única llista.
establir x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # El valor de x és "b a d c f e" # Hi ha 3 iteracions del bucle.
S'utilitza el següent bucle i i j per iterar en dues llistes en paral·lel.
establir x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # El valor de x és "a d b e c f {} g" # Hi ha 4 iteracions del bucle.
Els dos formularis es combinen en el següent exemple.
establir x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # El valor de x és "a d e b f g c {} {}" # # Hi ha 3 iteracions del bucle.
Notes
Hi ha diversos comandaments relacionats ambper cadascú incloent:
- per (n)
- mentre que (n)
- trencar (n)
- continuar (n)
Com que la distribució de Linux i els nivells d'alliberament del nucli varien, utilitzeu el home comandament ( % home ) per veure com s'utilitza específicament una comanda a l'ordinador en particular.













