Unix 命令发送具有变量主题的邮件

Unix 命令发送具有变量主题的邮件

我们创建了一个用于发送邮件的 UNIX 程序。在该程序中,我们根据用户输入获取邮件主题和正文(通过 Oracle 并发程序)

例如:

并发程序的完整用户输入存储在$1变量中,如下所示:

XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" \
FCP_USERID=5667 \
FCP_USERNAME="SRI" \
FCP_PRINTER="noprint" \
FCP_SAVE_OUT=Y \
FCP_NUM_COPIES=1 \
"9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" \
"/tmp_mnt2/attachments" \
"[email protected]" \
"This is the subject for the mail" \
"PFA for the list of Invoices that are stuck in workflow."

这里,邮件的主题是This is the subject for the mail我们将其存储在变量中SUB邮件正文是PFA for the list of Invoices that are stuck in workflow.我们将其存储在另一个变量中FCP_BODY

现在,我写如下来发送邮件

echo "Hello,
${FCP_BODY}
Thanks,
Bommi
"| mailx -s $SUB

但是,在我收到的邮件中,正文已正确送达,但主题仅送达This

谁能帮助我如何获取完整的主题来发送邮件?

答案1

您需要引用该变量$SUB

... mailx -s "$SUB"

说明:包含空格的变量将受到分词。也就是说,如果你有命令

mailx -s $SUB

并且变量$SUB包含字符串"This is the subject for the mail"

前面的命令扩展为

mailx -s This is the subject for the mail

-s标志(主题)仅获取参数This,其余单词作为其他参数传递,并且(在大多数情况下)像垃圾一样处理。

反而,

mailx -s "$SUB"

扩展为

mailx -s "This is the subject for the mail"

这就是你想要的。


相关问题及解答:

相关内容