read -r foo[index]
read -r "foo[index]"
ShellCheck found an array element passed to read, where the
 was not quoted. This means the array index
[index] will be treated as a glob range, and the word may be replaced or trigger
In the problematic example, having a directory named
food will cause the command to become
read -r food instead, since
food matches the glob
foo[index]. The result is assigning a value to the wrong variable.
Quote or escape the pattern as shown to ensure it always reads into the array
foo at index
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.