Build List Iterators Linux "foreach" Command-ekin

Programazioa egitean, foreach komandoak begizta bat inplementatzen du, begizta-aldagaiek zerrenda bat edo gehiago dituzten balioak suposatzen dituztenean. Kasu errazean begizta aldagaia, varname eta zerrendako zerrenda bat dago, eta varname esleitzeko balioen zerrenda da. Gorputzaren argumentua Tcl script-a da. Zerrendako elementu bakoitzarentzat (lehenengotik behin betiko), elementuaren edukia varnamera esleitzen du, elementua ateratzeko Lindex komandoa erabili izan balitz bezala, Tcl-en interpretatzailea deitzen zaio gorputza exekutatzeko.

Laburpena

foreach varname list body
foreach varlist1 list1 ? varlist2 list2 ... ? body

Eztabaida

Oro har, balore-zerrenda bat baino gehiago egon daiteke (adibidez, zerrenda1 eta zerrenda2 ), eta balore-zerrenda bakoitzak begizta-aldagaien zerrenda bat (adibidez, varlist1 eta varlist2 ) lotu daiteke . Bueltaren iterazio bakoitzean zehar, varlist bakoitzaren aldagaiak dagokien balioen arabera esleituko dira. Zerrenda bakoitzeko balioak lehenengo eta azkeneko ordenean erabil daitezke, eta balio bakoitza behin bakarrik erabiltzen da. Botoien iterazio kopuru osoa balioak zerrendatik balio guztiak erabiltzeko balio handia da. Balio zerrendak ez baditu eleberri bakoitzeko begizta bakoitzeko elementu nahikorik, balio hutsak falta diren elementuetarako erabiltzen dira.

Atsedenaldia eta jarraipen instrukzioak gorputz barruan deitu daitezke, komandoaren antzeko efektuarekin. F oreach- ek kate huts bat itzultzen du.

Adibideak

Ondorengo begiztak i eta j erabiltzen ditu loop aldagai gisa zerrendako elementu bikoteen bidez iradokitzeko.

ezarri x {} foreach {ij} {abcdef} {lappend x $ j $ i} # x balioa "badcfe" # # 3 begizta iterazio daude.

Hurrengo begizta i eta j erabiltzen ditu paraleloan bi zerrenda baino gehiagotan ibiltzeko.

ezarri x {} foreach i {abc} j {defg} {lappend x $ i $ j} # x balioa "adbecf {} g" # # Bikoitzaren iterazioak daude.

Bi forma konbinatzen dira hurrengo adibidean.

ezarri x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # x balioa "adebfgc {} {}" # # 3 iturri daude begizta.

Oharrak

Hainbat erlazionatutako komandoekin batera lan egiten du, besteak beste:

Linux banaketa eta kernel-oharra maila aldatzen delako, erabili man komandoa ( % man ) komando bat zehazki nola erabiltzen den zure ordenagailuan .