Итераторы списка сборки с помощью команды Linux foreach

При программировании для каждого Команда реализует цикл, в котором переменные цикла принимают значения из одного или нескольких списков. В простейшем случае есть одна переменная цикла, varname, и один список, список, который представляет собой список значений, которые нужно присвоить varname. Аргумент body — это скрипт Tcl. Для каждого элемента списка (в порядке от первого до последнего), для каждого присваивает содержимое элемента varname, как если бы LINDEX Команда использовалась для извлечения элемента, а затем вызывает интерпретатор Tcl для выполнения body.

конспект

для каждого тело списка имен 

для каждого varlist1 list1? varlist2 list2 …? тело

обсуждение

В общем случае может быть более одного списка значений (например, list1 и list2), и каждый список значений может быть связан со списком переменных цикла (например, varlist1 и varlist2). Во время каждой итерации цикла переменным каждого varlist присваиваются последовательные значения из соответствующего списка. Значения в каждом списке используются в порядке от первого до последнего, и каждое значение используется ровно один раз. Общее количество итераций цикла достаточно велико, чтобы использовать все значения из всех списков значений. Если список значений не содержит достаточного количества элементов для каждой из его переменных цикла в каждой итерации, пустые значения используются для отсутствующих элементов.

 сломать а также Продолжить операторы могут вызываться внутри тела, с тем же эффектом, что и в за команда. Foreach возвращает пустую строку.  

Примеры

Следующий цикл использует i и j в качестве переменных цикла для итерации по парам элементов одного списка.

установить х {}
foreach {i j} {a b c d e f} {
Lappend X $ J $ I
}
# Значение x равно "b a d c f e"
# Есть 3 итерации цикла.

В следующем цикле i и j используются для параллельного выполнения двух списков.

установить х {}
foreach i {a b c} j {d e f g} {
Lappend X $ I $ J
}
# Значение x равно "a d b e c f {} g"
# Есть 4 итерации цикла.

Две формы объединены в следующем примере.

установить х {}
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 и выпуска ядра различаются, используйте команду man (% man), чтобы увидеть, как команда конкретно используется на вашем конкретном компьютере.

Ссылка на основную публикацию