Enviado em 15/08/2017 - 18:43h
como faço para executar um comando armazenado em uma variável em formato de texto e que este comando pegue os valores de outras variáveis em tempo de execução?
explicando melhor meu problema com um exemplo ilustrativo...
no código abaixo tenho um comando armazenado em uma variável no formato de texto: cmd="echo $pwd"
e consigo executar o texto da variável como um comando: eval $cmd
o problema é que quando executo o comando ao invés de o comando pegar em tempo de execução o valor da variável "pwd", no entanto, ele pega o valor dessa variável no momento em que atribuí o comando para ser armazenado na variável no formato de texto.
assim, ao invés de o resultado "Final" ser "456" o resultado está sendo "123".
ou seja, como fazer com que o comando "eval $cmd" pegue o valor atual da variável "pwd"? (que é "456")
explicando melhor meu problema com um exemplo ilustrativo...
no código abaixo tenho um comando armazenado em uma variável no formato de texto: cmd="echo $pwd"
e consigo executar o texto da variável como um comando: eval $cmd
o problema é que quando executo o comando ao invés de o comando pegar em tempo de execução o valor da variável "pwd", no entanto, ele pega o valor dessa variável no momento em que atribuí o comando para ser armazenado na variável no formato de texto.
assim, ao invés de o resultado "Final" ser "456" o resultado está sendo "123".
pwd="123"
cmd="echo $pwd"
pwd="456"
k=$(eval $cmd)
echo "Final: $k"
ou seja, como fazer com que o comando "eval $cmd" pegue o valor atual da variável "pwd"? (que é "456")