You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
The = here is literal. To assign by index, use ( [index]=value ) with no spaces. To keep as literal, quote it.
Problematic code:
array=( [index] = value )
Correct code:
array=( [index]=value )
Rationale:
The shell doesn't care about the = sign in your array assignment because it's not part of a recognized index assignment. Instead, it's considered a literal character and becomes part of an array element's value.
In the example problematic code, this is because the = was intended to set the index, but the shell will not recognize it when it is surrounded by spaces.
Make sure to remove any spaces around the = when assigning by index, such as in the correct code.
If you wanted the = to be a literal part of the array element, add quotes around it, such as env=( "LC_CTYPE=C" ) or specialChars=( "=" "%" ";" ) .