Vytvoření seznamu iteračních příkazů pomocí příkazu "foreach" systému Linux

Při programování provede příkaz foreach smyčku, kde proměnné smyčky přebírají hodnoty z jednoho nebo více seznamů. V nejjednodušším případě existuje jedna proměnná smyčky, varname a jeden seznam , což je seznam hodnot přiřazených varname . Argument těla je skript Tcl. Pro každý prvek seznamu (v pořadí od prvního do posledního) foreach přiřadí obsah prvku k varname, jako kdyby byl příkaz lindex použit k extrahování elementu, pak volá Tcl interpret pro spuštění těla .

Synopse

foreach body seznamu varname
foreach varlist1 list1 ? varlist2 list2 ... ? tělo

Diskuse

Ve všeobecném případě může být více než jeden seznam hodnot (např. Seznam1 a seznam2 ) a každý seznam hodnot může být spojen se seznamem smyčkových proměnných (např. Varlist1 a varlist2 ). Během každé iterace smyčky jsou proměnné každého varlistu přiřazeny po sobě jdoucí hodnoty z odpovídajícího seznamu . Hodnoty v každém seznamu se používají v pořadí od prvního do posledního a každá hodnota se používá přesně jednou. Celkový počet opakování smyček je dostatečně velký na to, aby použil všechny hodnoty ze všech seznamů hodnot. Pokud seznam hodnot neobsahuje dostatečné množství prvků pro každou ze svých proměnných smyčky v každé iteraci, pro chybějící prvky se použijí prázdné hodnoty.

Příkazy o přerušení a pokračování mohou být vyvolány uvnitř těla se stejným účinkem jako v příkazu pro . Příkaz vrátí prázdný řetězec.

Příklady

Následující smyčka používá proměnné smyčky i a j jako iteraci přes dvojice prvků jediného seznamu.

nastavit x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Hodnota x je "badcfe" # Existují 3 iterace smyčky.

Další cyklus používá i a j pro paralelní opakování dvou seznamů.

nastavíme x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Hodnota x je "adbecf {} g" # Existují 4 iterace smyčky.

Tyto dvě formy jsou kombinovány v následujícím příkladu.

množina x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k} # Hodnota x je "adebfgc {} {}" # Existují 3 iterace smyčky.

Poznámky

Několik souvisejících příkazů pracuje s foreach včetně:

Vzhledem k tomu, že se distribuce Linuxu a úrovně uvolnění jádra liší, použijte příkaz man ( % man ), abyste zjistili, jak je daný příkaz konkrétně použit na vašem počítači .