[英]Bash variable from within bash variable with text
我正在尝试将一个字符串回显到一个文件中,该文件中包含变量以及纯文本。 并稍后在命令中使用它,但要解释变量。 我曾尝试使用eval
并取得有限的成功,但后来我无法包含 <> 等字符
body=`cat ~/body`;
echo -e "${body}" >> message
message
稍后在以下命令中使用
sendmail -f noreply@example.com $recipient < message;
如果message
的内容是:
"Hello. The current epoch time is<br>
${EPOCHSECONDS}
"
我希望 output 解释 var 并将正文显示为
"Hello. The current epoch time is<br>
1662823014"
这可能吗? 谢谢。
envsubst
https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html应该可以帮助您。
例如
$ 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
是的,有可能,您可以按以下方式执行此操作:
#!/bin/bash
body=$( cat ~/body )
##### Set Message Variables ##########################################
EPOCHSECONDS=1662823014
##### Replace Template Variables #####################################
final_message=$( eval echo \"${body}\" )
##### Do whatever you want with ${final_message} #####################
echo "Final Message: "
echo "${final_message}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.