Если вы действительно хотите сделать это, просто сделайте это:
#!/bin/bash
test1='1'
test2='2'
test3='3'
for v in "test1" "test2" "test3"; do
echo "The variable's name is $v"
echo "The variable's content is ${!v}"
done
Но вы, вероятно, предпочтете использовать массивы , а не имена динамических переменных, поскольку это может рассматриваться как плохая практика и затрудняет понимание вашего кода. Так что рассмотрите эту, гораздо лучше, форму:
#!/bin/bash
test[0]='1'
test[1]='2'
test[2]='3'
for ((i=0;i<=2;i++)); do
echo "The variable's name is \$test[$i]"
echo "The variable's content is ${test[$i]}"
done