experimente com $()
em vez de citações anteriores:
VAL=$(eval echo \$arr$n)
por favor, olhe os seguintes comandos para baixo, (o shell é sh )
algo não é claro para mim
quando eu executo - eval echo \ $ arr $ n , obtenho o valor a conforme o esperado
então por que: VAL = eval echo \$arr$n
e echo $ VAL não imprime o mesmo valor a ?
defina um valor em arr1
# n=1
# eval arr$n=a
imprima um valor de arr1
# n=1
# eval echo \$arr$n
a
defina eval echo \ $ arr $ n como VAL e imprima $ VAL
# VAL=' eval echo \$arr$n '
# echo $VAL
{*}1
o que precisa ser corrigido no comando - VAL = eval echo \$arr$n
, então, quando eu fizer echo $ VAL , obtenho o valor a
Tags sh linux shell-script