Eu tenho um arquivo de texto contendo isso:
Hello \"${USER}\"!
Today you drank ${COFFEE_COUNT} coffees.
See you tomorrow!
Agora tenho um script bash em execução com essas strings atribuídas (e exportadas). Mas quando esse script ecoa esse arquivo, ele não substitui as strings.
... code ...
export COFFEE_COUNT="$(some code)" #${USER} is set by default
... code ...
t=$(wc -l < ${scriptdir}/COFFEE);
for ((l=1;l<t;l++));
do
echo $(sed -n "${l}{p;q;}" < ${scriptdir}/COFFEE);
done;
... code ...
nem gato trabalha
cat "${scriptdir}/COFFEE";
Existe uma maneira de fazer isso funcionar?
saída necessária:
Hello "username"!
Today you drank 3 coffees.
See you tomorrow!
O bash apenas expande as variáveis em seu código, mas não aquelas dentro dos dados das variáveis (ou outras expansões). Si em vez de
você precisa
Por que usar um arquivo adicional quando um here-doc pode fazer o trabalho:
Na execução: