7 SC3009
Lucas Larson edited this page 2023-01-27 17:16:33 -05:00

In POSIX sh, brace expansion is undefined.

Problematic code:

#!/bin/sh

for i in {1..5}; do ...

Here, $i expands to {1..5}. It does not expand to the sequence 1 2 3 4 5

Correct code:

#!/bin/sh
i=1
# while $i ≤ 5 ...
while [ "${i}" -le 5 ]; do ...

  # something that will occur 5 times

  i=$((i + 1))
done

You can also use the seq command, e.g. seq 1 5, but seq is not a POSIX utility.

Rationale:

Exceptions:

None