Aqui estão alguns exemplos:
declare [-g] "${foo}=example2"
declare -n foo='example1'
foo='example2'
eval "${foo}=example2"
mapfile -t "${foo}" <<< 'example2'
printf -v "${foo}" '%s' 'example2'
IFS='' read -r "${foo}" <<< 'example2'
typeset [-g] "${foo}=example2"
Como outros usuários disseram, tenha cuidado com eval
e com atribuições indiretas em geral.