Eu gostaria de usar variáveis dentro do loop for no shell.
Meu código atual:
VAA="1st_first"
VAB="2nd_second"
VAC="3rd_third"
for i in VAA VAB VAC; do
if [[ "${i}" =~ ^[A-Za-z]*$ ]]; then
echo "$i variable is a word"
else
echo "$i variable is not a word"
fi
done
O resultado esperado seria verificar as variáveis $VAR1, $VAR2 e $VAR3 e imprimir que é uma palavra.
A saída atual é:
VAA variable is a word
VAB variable is a word
VAC variable is a word
Não está correto, pois o "$VAA" contém um número.
Como posso usar variáveis de fora do loop for?
Eu costumo resolver coisas assim com matrizes associativas. Mas não sei se essa é uma solução eficiente. Mas isso não garante a ordem original conforme aparece na saída
Saída:
Usar indireção variável
$i
mostrará a palavra doi
iterador.${!i}
mostrará o conteúdo da variável. esta é uma indireção variável .Portanto, para verificar o conteúdo, você precisa usar
${!i}
A solução é :
O resultado :