Deseja imprimir o argumento posicional com substituição de variável

0

$var tem a posição de argumento posicional e deseja substituir & imprima o argumento posicional.

/home/yeshky>echo $1 
/home/yeshky>abc
/home/yeshky>var=1
/home/yeshky>echo "You have opted for $'$var'"

Resultado esperado: /home/yeshky>You have opted for abc

==== Tentei substituir o abaixo, mas sem sorte:

echo "You have opted for $$((var))"
echo "You have opted for $($((var)))"
    
por Yeshky 27.12.2016 / 19:14

1 resposta

2

O que você quer é indireção. Em bash e algumas outras conchas você pode fazer

printf '%s\n' "${!var}"

para imprimir o valor da variável cujo nome está armazenado na variável var

Você tem que usar as chaves para acessar a variável para fazer isso, e o primeiro caractere dentro da chave deve ser ! . Então o resto é o nome da variável que contém o nome da variável que você deseja recuperar.

Para muito mais sobre o assunto, veja aqui especialmente, é claro, a seção sobre a indireção

    
por 27.12.2016 / 19:19