1

我通过将数据库中的一些行读取到名为 EMAIL_DESC 的多行 shell 变量中来构建电子邮件消息:

EMAIL_DESC=`run "select text from  ETL.MAIL_TEXT where ID=1 order by id, text_order"`

不幸的是,我在 $EMAIL_DESC 中有变量和命令 ( date),但我无法以任何方式替换它们。

echo "$EMAIL_DESC"
Please be aware that all user tables and views on the $SERVER_DESC
Ended = `date`.

任何的想法?

4

2 回答 2

0

问题不是很清楚。但无论我能理解什么,我认为你在这里寻找邪恶的评估。考虑一下:

x='Foo
Bar
$HOME
Baz
$SHELL'

echo $x
eval echo $x

输出:

Foo Bar $HOME Baz $SHELL
Foo Bar /home/alex Baz /bin/bash
于 2013-03-12T18:09:20.737 回答
0

我找到了解决方案。

在数据库中每一行的末尾,我必须添加“\\n”(换行符),并且我必须更改 eval 以接受来自 echo (-e) 的额外参数:

eval "echo -e "${EMAIL_DESC}" "

再次感谢亚历克斯

于 2013-03-13T12:33:21.677 回答