Skip to content
koalaman edited this page Dec 31, 2016 · 2 revisions

Brace expansion doesn't happen in [[ ]]. Use a loop.

Problematic code:

[[ "$file" = index.{htm,html,php} ]] && echo "This is the main file"

Correct code:

for main in index.{htm,html,php}
do
  [[ "$file" = "$main" ]] && echo "This is the main file"
done

Rationale:

Brace expansions doesn't happen in [[ ]]. They will just be interpreted literally.

Instead, use a for loop to iterate over values, and apply your condition to each.

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