Build List Iterators amb el comandament "foreach" de Linux

Quan es programi , la comanda foreach 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 de bucles, varname i una llista, llista , que és una llista de valors per assignar a varname . L'argument del cos és un script de Tcl. Per a cada element de la llista (en ordre de primer a últim), foreach assigna els continguts de l'element a varname com si la comanda lindex s'hagués utilitzat per extreure l'element i, a continuació, truca a l'intèrpret Tcl per executar el cos .

Sinopsi

foreach varname list body
foreach llista varlist1 ? 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 bucles (p. Ex., Varlist1 i varlist2 ). Durant cada iteració del bucle, les variables de cada varlist s'assignen valors consecutius de la llista corresponent. Els valors de cada 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.

Les declaracions d' interrupció i continuació es poden invocar a l'interior del cos , amb el mateix efecte que a l'ordre for command. El f oreach torna una cadena buida.

Exemples

El següent bucle fa servir i i j com variables de bucle per iterar sobre parells d'elements d'una única llista.

configure x {) foreach {ij} {abcdef} {lappend x $ j $ i} # El valor de x és "badcfe" # Hi ha 3 iteracions del bucle.

El següent bucle fa servir i i j per iterar en dues llistes en paral·lel.

configure x {) foreach i {abc} j {defg} {lappend x $ i $ j} # El valor de x és "adbecf {} g" # Hi ha 4 iteracions del bucle.

Els dos formularis es combinen en el següent exemple.

establir x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # El valor de x és "adebfgc {} {}" # Hi ha 3 iteracions del bucle.

Notes

Diverses ordres relacionades funcionen amb foreach incloent:

Com que la distribució de Linux i els nivells d'alliberament del nucli varien, utilitzeu l'ordre man ( % home ) per veure com s'utilitza específicament una comanda a l' ordinador en particular.