Ao programar, opara cada comando implementa um loop onde as variáveis de loop assumem os valores de uma ou mais listas. No caso mais simples, existe uma variável de loop, varname e uma lista Lista , que é uma lista de valores a serem atribuídos a varname . o corpo argumento é um script Tcl. Para cada elemento de Lista (em ordem do primeiro ao último),para cada atribui o conteúdo do elemento para varname como se olindexcomando foi usado para extrair o elemento, então chama o intérprete Tcl para executar corpo .
Sinopse
para cada corpo da lista varname
para cada varlist1 list1 ? varlist2 list2 … ? corpo
Discussão
Em um caso geral, pode haver mais de uma lista de valores (por exemplo, lista1 e lista2 ), e cada lista de valores pode ser associada a uma lista de variáveis de loop (por exemplo, varlist1 e varlist2 ). Durante cada iteração do loop, as variáveis de cada varlist são atribuídos valores consecutivos do correspondente Lista . Valores em cada Lista são usados em ordem do primeiro ao último, e cada valor é usado exatamente uma vez. O número total de iterações de loop é grande o suficiente para usar todos os valores de todas as listas de valores. Se uma lista de valores não contiver elementos suficientes para cada uma de suas variáveis de loop em cada iteração, os valores vazios serão usados para os elementos ausentes.
opausa econtinuar declarações podem ser invocadas dentro corpo , com o mesmo efeito que no para comando. O foreach retorna uma string vazia.
Exemplos
O loop a seguir usa Eu e j como variáveis de loop para iterar sobre pares de elementos de uma única lista.
set x {} foreach {i j} {a b c d e f} {voltar x $ j $ i} # O valor de x é "b a d c f e" # Existem 3 iterações do loop.
O próximo loop usa Eu e j para iterar mais de duas listas em paralelo.
set x {} foreach i {a b c} j {d e f g} {voltar x $ i $ j} # O valor de x é "a d b e c f {} g" # Existem 4 iterações do loop.
Os dois formulários são combinados no exemplo a seguir.
set x {} foreach i {a b c} {jk} {d e f g} {passar x $ i $ j $ k} # O valor de x é "a d e b f g c {} {}" # Existem 3 iterações do loop.
Notas
Vários comandos relacionados funcionam compara cada Incluindo:
- para (n)
- enquanto (n)
- quebrar (n)
- continue (n)
Como a distribuição do Linux e os níveis de liberação do kernel variam, use o homem comando ( % homem ) para ver como um comando é especificamente usado em seu computador em particular.




