Substituição de variável de ambiente Linux [duplicado]

0

Eu tenho uma variável de ambiente chamada NAME

export NAME="xyz"

e dentro de um arquivo test.txt, eu tenho uma linha

name=$NAME

Eu li o arquivo e atribuí a linha a uma variável y

y='cat test.txt'

Agora estou imprimindo a variável y

echo $y

Como posso obter uma saída de name=xyz em vez de name=$NAME ?

    
por Jobs 18.01.2018 / 16:25

1 resposta

2

Acho que você precisa implementar eval para esse uso específico. Vou explicar usando a linha de comando:

  1. export $ ABC (como você exporta $ NAME)

    $ grep ABC .bashrc
    export ABC="xyz"
    
  2. defina a variável no seu arquivo txt

    $ cat test.txt
    name=$ABC
    
  3. defina a variável $ y para a saída de cat test.txt

    $ y='cat test.txt'
    
  4. eval $ y

    $ eval $y
    
  5. agora o nome está definido:

    $ echo $name
    xyz
    
por 18.01.2018 / 16:53