First of all there can not be any space around `=` in variable declaration in `bash`.
To get what you want you can use `eval`.
For example a sample script like yours :
#!/bin/bash
i=0
for name in FIRST SECOND THIRD FOURTH FIFTH; do
eval "$name"="'$(( $i + 1 ))q;d'"
printf '%s\
' "${!name}"
i=$(( $i + 1 ))
done
Prints :
1q;d
2q;d
3q;d
4q;d
5q;d
Use `eval` cautiously, some people call it evil for some valid reason.
`declare` would work too :
#!/bin/bash
i=0
for name in FIRST SECOND THIRD FOURTH FIFTH; do
declare "$name"="$(( $i + 1 ))q;d"
printf '%s\
' "${!name}"
i=$(( $i + 1 ))
done
also prints :
1q;d
2q;d
3q;d
4q;d
5q;d