Put whitespace around := and ?=
Don't need eval for [ … ]

This allows the variables being compared to contain whitespace.
Bash array expands keeps whitespace intact.