使用mailx在电子邮件中将多个文件作为附件发送

时间:2014-11-05 11:04:29

标签: bash shell unix mailx

我有一个requiremnet来发送多个文件作为shell脚本中的电子邮件attachmnet。我使用了以下命令。

(printf "%s\n" "BODY"; uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt ) | mailx -m -s "TEST" emailid@domain.com

但是,我想作为attachmnet发送的文件数量是动态的。所以我想将uuencode ...命令分配给变量然后使用它。我试过以下方式,

$ ATTACH_CMD=$(echo `cat $OUTPUT_FILE`)
$ echo $ATTACH_CMD
uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt

$ (printf "%s\n" "BODY"; $ATTACH_CMD ) | mailx -m -s "TEST" emailid@domain.com

我正在低于错误。

sh: uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt:  not found.

任何人都可以帮我这个吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用以下代码?不知道为什么它可以工作,但也许下面的代码可以用作解决方法

(printf "%s\n" "BODY"; `echo $ATTACH_CMD` ) | mailx -m -s "TEST" emailid@domain.com`?

对于$ATTACH_CMD,我使用了echo命令。

答案 1 :(得分:0)

我终于找到了方法。 eval制作技巧

eval $STR 

$ ATTACH_CMD=$(echo `cat $OUTPUT_FILE`)
$ echo $ATTACH_CMD
uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt

$ (printf "%s\n" "BODY"; eval $ATTACH_CMD ) | mailx -m -s "TEST" emailid@domain.com