Eu sei que posso usar envsubst
o comando para substituir variáveis de ambiente dentro de um arquivo e gravá-lo em um arquivo de saída:
envsubst < input.txt > output.txt
No entanto, agora eu só tenho uma variável e não é um arquivo. Mas ainda preciso substituir qualquer variável de ambiente dentro dele.
export original_text="Hello $name, please come here $date"
# I want to be able to replace $name and $date, in the RAM and not on disk and files
export $name="John"
export $date="tomorrow"
output=$(envsubst < $original_text) # this is a pseudo-command
echo $output
# prints => Hello John, please come here tomorrow
É possível? Como pode fazer isso?
Sim, você pode usar uma string aqui:
<<< "$variable"
Seu texto_original deve estar entre aspas simples, caso contrário as variáveis serão substituídas na criação do
original_text
.Claro, você pode salvá-lo em uma variável como sempre faria:
Você também pode canalizar para
envsubst
, por exemplo: