通过电子邮件发送多个文件,并在电子邮件中添加正文消息(Unix Korn Shell)

通过电子邮件发送多个文件,并在电子邮件中添加正文消息(Unix Korn Shell),shell,file,email,unix,mailx,Shell,File,Email,Unix,Mailx,我试图通过电子邮件发送多个文件,但也在电子邮件中包含一条正文消息,我尝试了几种方法,但没有成功,以下代码用于发送多个文件: (uuencode file1.txt file1.txt;uuencode file2.txt file2.txt)| mailx-s“测试”email@test.com 我尝试过这个选项,但运气不佳: echo“这是正文消息”|(uuencode file1.txt file1.txt;uuencode file2.txt file2.txt)| mailx-s“测试”

我试图通过电子邮件发送多个文件,但也在电子邮件中包含一条正文消息,我尝试了几种方法,但没有成功,以下代码用于发送多个文件:

(uuencode file1.txt file1.txt;uuencode file2.txt file2.txt)| mailx-s“测试”email@test.com

我尝试过这个选项,但运气不佳:

echo“这是正文消息”|(uuencode file1.txt file1.txt;uuencode file2.txt file2.txt)| mailx-s“测试”email@test.com

知道代码是怎么回事吗?

试试这个:

(echo "This is the body message"; uuencode file1.txt file1.txt; uuencode file2.txt file2.txt) | mailx -s "test" email@test.com
您的命令的问题是,您正在将
echo
的输出管道化到子shell中,并且由于
uuencode
没有从stdin读取,因此它被忽略

您可以使用
{…}
来避免子shell:

{ echo "This is the body message"; uuencode file1.txt file1.txt; uuencode file2.txt file2.txt; } | mailx -s "test" email@test.com
如果您在脚本中执行此操作,并且希望它看起来更可读,那么:

{
  echo "This is the body message"
  uuencode file1.txt file1.txt
  uuencode file2.txt file2.txt
} | mailx -s "test" email@test.com