Esta questão é semelhante a esta: É possível imprimir o conteúdo do conteúdo de uma variável com script de shell? (referência indireta)
Em um arquivo que
a=${env1}is a good ${env2}
b=${env3}is a good ${env2}
Eu gostaria de mostrar o conteúdo deste arquivo para:
a=tom is a good cat
b=jerry is a good mouse
Eu tentei isso:
tmp=`cat a.conf`
echo $tmp # environmental variables are not interpreted, and file format changed, hard to read
echo ${!tmp} # no ...
Além disso, a ideia acima é meio que um desvio.
Se você tiver um arquivo parecido com este:
E você quer produzir saída com as variáveis substituídas, você usa o
envsubst
comando, que faz parte dogettext
pacote. Supondo que o acima esteja emexample.txt.in
, poderíamos executar:E obtenha como saída:
Se
ensubst
não estiver disponível, você pode fazer algo como:Nomeie o script como
envsubst.sh
, e execute-o de forma semelhante ao exemplo anterior:env1=tom env2=cat env3=jerry env4=mouse sh envsubst.sh < example.txt.in