Выражение последовательности Bash (диапазон)

В этой статье мы рассмотрим основы выражения последовательности в Bash.

Выражение последовательности Bash генерирует диапазон целых чисел или символов, определяя начальную и конечную точки диапазона. Обычно он используется в сочетании с циклами for .

Выражение последовательности Bash

Выражение последовательности принимает следующую форму:

{START..END[..INCREMENT]}
  • Выражение начинается с открывающей скобки и заканчивается закрывающей скобкой.
  • START и END могут быть положительными целыми числами или одиночными символами.
  • Значения START и END являются обязательными и разделяются двумя точками .. , без пробелов между ними.
  • Значение INCREMENT является обязательным. Если он присутствует, он должен быть отделен от значения END двумя точками .. , без пробелов между ними. При вводе символов выражение раскрывается в лексикографическом порядке.
  • Выражение расширяется до каждого числа или символов между START и END , включая указанные значения.
  • Неправильно сформированное выражение остается без изменений.

Вот выражение в действии:

echo {0..3}

Если INCREMENT не указано, приращение по умолчанию равно 1:

0 1 2 3

Вы также можете использовать другие символы. В приведенном ниже примере напечатан алфавит:

echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

Если значение 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 позволяет генерировать диапазон целых чисел или символов.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий