Pattern: Unnecessary glob expansion with [
Issue: -
With [
, arguments will undergo glob expansion. If a file foo0
exists when the problematic code is run, it will check for the variable foo0
instead of the array entry foo[0]
. If there additionally exists a foo1
, it will simply fail with an error.
Use [[ ]]
or quote the argument.
Example of incorrect code:
[ -v foo[0] ]
Example of correct code:
[ -v 'foo[0]' ]