Введение
Выражение последовательности Bash создает диапазон целых чисел или символов, определяя начальную и конечную точки диапазона. Обычно используется в сочетании с циклами for
.
В этой статье мы рассмотрим основы выражения последовательности в Bash.
Выражение последовательности Bash
Выражение последовательности принимает следующий вид:
{START..END[..INCREMENT]}
- Выражение начинается с открывающей скобки и заканчивается закрывающей скобкой.
START
иEND
могут быть целыми положительными числами или отдельными символами.- Значения
START
иEND
обязательны и разделены двоеточием..
без пробела между ними. - Значение
INCREMENT
является необязательным, если оно присутствует, оно должно быть отделено от значенияEND
двоеточием..
без пробелов между ними. Когда даны символы, выражение раскрывается в лексикографическом порядке. - Выражение расширяется до любого числа или символа между
START
иEND
, включая предоставленные значения. - Неверно сформированное выражение остается неизменным.
Вот выражение в действии:
echo {0..3}
Если INCREMENT
не указан, приращение по умолчанию равно 1:
0 1 2 3
Вы также можете использовать другие шрифты. Следующий пример печатает алфавит:
echo {a..z}
abcdefghijklmnopqrstu vwxyz
Если значение START
больше, чем END
, то выражение создаст интервал, который уменьшается:
for i in {3..0}
do
echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0
Когда INCREMENT
предоставляется, он используется как шаг между каждым сгенерированным элементом:
for i in {0..20..5}
do
echo "Number: $i"
done
Каждое сгенерированное число больше предыдущего на 5:
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
При использовании целых чисел для генерации диапазона можно добавить начальное значение 0
, чтобы все числа имели одинаковую длину. Чтобы заполнить сгенерированные целые числа с префиксом START
и END
перед нулем с нулем:
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
Перед выражением или суффиксом могут стоять другие символы:
echo A{00..3}B
A00B A01B A02B A03B
Если выражение построено неправильно, оно остается неизменным:
echo {0..}
0..
Вывод
Выражение последовательности Bash позволяет генерировать диапазон целых чисел или символов.