[ ]. Use a loop.[ "$file" = index.{htm,html,php} ] && echo "This is the main file"for main in index.{htm,html,php}
do
[ "$file" = "$main" ] && echo "This is the main file"
doneBrace expansions in [ ] will expand to a sequence of
words. Operators work on single words.
The problematic code is equivalent to
[ "$file" = index.htm index.html index.php ], which is
invalid syntax. A typical error message is
bash: [: too many arguments or
dash: somefile: unexpected operator.
Instead, use a for loop to iterate over values, and
apply your condition to each.
None.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.