$
/${}
for numeric index, or escape it for
string.# Regular array
index=42
echo $((array[$index]))
or
# Associative array
index=banana
echo $((array[$index]))
# Regular array
index=42
echo $((array[index]))
or
# Associative array
index=banana
echo $((array[\$index]))
For a numerically indexed array, the $
is mostly
pointless and can be removed like in SC2004.
For associative arrays, the $
should be escaped to avoid
accidental dereferencing:
declare -A array
index='$1'
array[$index]=42
echo "$(( array[$index] ))" # bash: array: bad array subscript
echo "$(( array[\$index] ))" # 42
None.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.