Skip to main content

Veidojiet saraksta iteratorus ar Linux "foreach" komandu

Anonim

Plānojot,katram komanda izpilda cilpu, kur cilpa mainīgie pieņem vērtības no viena vai vairākiem sarakstiem. Vienkāršākajā gadījumā ir viens cilpas mainīgais, varname , un viens saraksts sarakstu , tas ir to vērtību saraksts, kurām jāpiešķir varname . The ķermenis arguments ir Tcl skripts. Katram elementam no sarakstu (no pirmās uz pēdējo)katram piešķir elementa saturu uz varname kā tad, jalindexkomanda tika izmantota, lai iegūtu elementu, pēc tam aicina izpildīt TCL tulku ķermenis .

Kopsavilkums

katram varname saraksts ķermenis

katram varlist1 saraksts1 ? varlist2 saraksts2 … ? ķermenis

Diskusija

Vispārīgā gadījumā var būt vairāk nekā viens vērtību saraksts (piemēram, saraksts1 un saraksts2 ), un katru vērtību sarakstu var saistīt ar cilpa mainīgo lielumu sarakstu (piemēram, varlist1 un varlist2 ) Katras cilpas atkārtojuma laikā katra mainīgā lieluma varlist tiek piešķirtas secīgas vērtības no atbilstošās vērtības sarakstu . Vērtības katrā sarakstu tiek izmantoti no pirmās uz pēdējo, un katru vērtību izmanto vienreiz. Kopējais cilpas iterāciju skaits ir pietiekami liels, lai izlietotu visas vērtības no visiem vērtību sarakstiem. Ja vērtību sarakstā nav katram iterācijas katram tā cilpas mainīgajiem pietiekami daudz elementu, trūkstošajiem elementiem tiek izmantotas tukšas vērtības.

Thepārtraukums unTurpināt paziņojumus var atsaukties iekšā ķermenis , ar tādu pašu iedarbību kā par komandu Fvai arī atgriež tukšu virkni.

Piemēri

Izmanto šādus cilpas i un j kā cilpa mainīgie, lai virzītu to pa vienam sarakstam pievienotu elementu pāri.

set x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # x vērtība ir "b a d c f e" # Ir 3 atkārtojumi no cilpas.

Nākamā cilpa izmanto i un j paralēli atkārtot divus sarakstus.

set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # x vērtība ir "a d b e c f {} g" # Ir 4 iterācijas no cilpas.

Abas formas ir apvienotas šādā piemērā.

set x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # x vērtība ir "a d e b f g c {} {}" # Ir 3 iterācijas no cilpas.

Piezīmes

Darbojas ar vairākām saistītām komandāmkatram tostarp:

  • par (n)
  • kamēr (n)
  • pārtraukums (n)
  • turpināt (n)

Tā kā Linux izplatīšanas un kodola atbrīvošanas līmeņi atšķiras, izmantojiet cilvēks komanda ( % cilvēks ), lai redzētu, kā komanda tiek īpaši izmantota jūsu konkrētajā datorā.