Em um shell script, tenho uma lista de variáveis que ordenei como $a, $b, $c, etc. Gostaria de imprimir essas variáveis sem precisar listar todas as variáveis. Meu código atual é o seguinte:
a=1
b=2
c=3
d=4
e=5
f=6
g=7
for x in $a$b$c$d$e$f$g
do
echo "$x"
done
Posso abreviar $a$b$c$d$e$f$g para algo que se refere a $a até $g?
Usando "mal"
eval
:Observe que usei aspas de escape que são necessárias para a saída correta se suas variáveis devem conter caracteres de espaço.
Ou use o loop for corrigido da primeira resposta :
Ou use uma matriz em seu script. É uma sintaxe diferente, mas é mais fácil de lidar se você precisar de todos os valores de uma vez. Aqui está um pequeno exemplo:
Observe que as duas últimas
printf
instruções não terminam com uma nova linha.