SC3009 – ShellCheck Wiki

See this page on GitHub

Sitemap


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


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.