繁体   English   中英

Bash 变量来自 bash 变量与文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM