a=2
pt2=3
eval "echo \"\${pt$a}\""
3
Alternativamente:
b=pt$a
eval "echo \"\${$b}\""
3
Existem outros métodos:
a=2
pt2=3
export "pt$a=$((pt$a + $(echo pt$a)))"
echo $((pt$a))
6
export
pode funcionar como eval
desse modo depois de uma moda com menos riscos - mas há o que não pode ser mais tarde se você precisar. E $((
aritmética = atribuição ))
afeta o comando atual no shell atual e, portanto, pode ser ainda mais seguro para atribuição de variável imediata se o valor for numérico.
Há também os .dot
e <<HEREDOCS
do shell para avaliar duas vezes uma atribuição de variável:
var1=var2 ; . <<HEREDOC /dev/stdin
$var1=val
HEREDOC
echo $var2
val