我们创建了一个用于发送邮件的 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"
这就是你想要的。
相关问题及解答: