Home > Software engineering >  Bash variable from within bash variable with text
Bash variable from within bash variable with text

Time:09-11

I'm trying to echo a string into a file which has variables inside it along with plaintext. and use it later with a command but have the variable be interpreted. I have tried to use eval with limited success but then I cannot include characters such as <>

body=`cat ~/body`;

echo -e "${body}" >> message

message is later used in the following command

sendmail -f [email protected] $recipient < message;

If the contents of message are:

"Hello. The current epoch time is<br>
${EPOCHSECONDS}
"

I'd like the output to have the var interpreted and the body shown as

"Hello. The current epoch time is<br>
1662823014"

Is this possible? Thanks.

CodePudding user response:

envsubst https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html should help you.

For example

$ cat message.txt
Hello. The current epoch time is
${EPOCHSECONDS}.

$ EPOCHSECONDS=1662823014

$ export EPOCHSECONDS

$ cat message.txt | envsubst
Hello. The current epoch time is
1662823014
  • Related