При программированиидля каждого команда реализует цикл, в котором переменные цикла принимают значения из одного или нескольких списков. В простейшем случае имеется одна переменная цикла, VarName , и один список, список , то есть список значений, присваиваемых VarName , тело Аргумент - это скрипт Tcl. Для каждого элемента список (в порядке от первого до последнего),для каждого присваивает содержимое элемента VarName как будтоLINDEXкоманда была использована для извлечения элемента, затем вызывает интерпретатор Tcl для выполнения тело .
конспект
для каждого тело списка имен varname
для каждого varlist1 list1 ? varlist2 list2 … ? тело
обсуждение
В общем случае может быть более одного списка значений (например, песни1 а также песни2 ), и каждый список значений может быть связан со списком переменных цикла (например, varlist1 а также varlist2 ). Во время каждой итерации цикла переменные каждого список переменных назначаются последовательные значения из соответствующего список , Значения в каждом список используются в порядке от первого до последнего, и каждое значение используется ровно один раз. Общее число итераций цикла достаточно велико, чтобы использовать все значения из всех списков значений. Если список значений не содержит достаточно элементов для каждой из его переменных цикла в каждой итерации, пустые значения используются для отсутствующих элементов.
перерыв а такжеПродолжить операторы могут быть вызваны внутри тело , с тем же эффектом, что и в за команда. Foreach возвращает пустую строку.
Примеры
Следующий цикл использует я а также J как переменные цикла для итерации по парам элементов одного списка.
set x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # Значение x равно "b a d c f e" # Имеются 3 итерации цикла.
Следующий цикл использует я а также J для параллельной итерации по двум спискам.
set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Значение x равно "a d b e c f {} g" #. Имеются 4 итерации цикла.
Две формы объединены в следующем примере.
set x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # Значение x равно "a d e b f g c {} {}" # Имеются 3 итерации цикла.
Заметки
Несколько связанных команд работают сдля каждого в том числе:
- для (п)
- в то время как (п)
- перерыв (п)
- продолжить (п)
Поскольку уровни распространения Linux и уровни выпуска ядра различаются, используйте человек команда ( % человек ), чтобы увидеть, как команда специально используется на вашем конкретном компьютере.