将变量替换为多行shell变量

时间:2013-03-12 17:16:31

标签: php sql shell variables multiline

我正在通过将数据库中的某些行读入名为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`.

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

x='Foo
Bar
$HOME
Baz
$SHELL'

echo $x
eval echo $x

输出:

Foo Bar $HOME Baz $SHELL
Foo Bar /home/alex Baz /bin/bash

答案 1 :(得分:0)

我找到了解决方案。

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

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

再次感谢 亚历