The way to iterate over a range in bash is
for i in {0..10}; do echo $i; done
What would be the syntax for iterating over the sequence with a step? Say, I would like to get only even number in the above example.
The way to iterate over a range in bash is
for i in {0..10}; do echo $i; done
What would be the syntax for iterating over the sequence with a step? Say, I would like to get only even number in the above example.
Bash 4's brace expansion has a step feature:
No matter if Bash 2/3 (C-style for loop, see answers above) or Bash 4, I would prefer anything over the 'seq' command.
Pure Bash, without an extra process:
I'd do
(though of course
seq 0 2 10
will produce the same output on its own).Note that
seq
allows floating-point numbers (e.g.,seq .5 .25 3.5
) but bash's brace expansion only allows integers.