Skip to content
koalaman edited this page Jan 26, 2016 · 1 revision

Quote this invalid brace expansion since it should be passed literally to eval

Problematic code:

eval echo {1..$n}

Correct code:

eval "echo {1..$n}"

Rationale:

Using eval somecommand {1..$n} depends both on bash silently failing to interpret the brace expansion, and on it passing failing brace expansions literally.

Rather than depending on these questionable features (which already behave differently in other shells), use the explicit, predictable way of passing values literally: quoting.

Exceptions:

None.

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally