Как произвести ряд с шагом n в Баш? (сгенерируйте последовательность чисел с шагом)
способ итерации по диапазону в bash-это
for i in {0..10}; do echo $i; done
каков будет синтаксис для итерации по последовательности с шагом? Скажем, я хотел бы получить только четное число в приведенном выше примере.
4 ответа:
Я бы сделал
for i in `seq 0 2 10`; do echo $i; done
(хотя конечно
seq 0 2 10
будет производить тот же результат сам по себе).отметим, что
seq
позволяет использовать числа с плавающей запятой (например,seq .5 .25 3.5
) но расширение скобки Баша позволяет только целые числа.
Баш 4расширение скобки имеет функцию шага:
for {0..10..2}; do .. done
независимо от того, если Bash 2/3 (c-стиль для цикла, см. ответы выше) или Bash 4, я бы предпочел что-нибудь над командой "seq".