0

我有一个要求在 shell 脚本中将多个文件作为电子邮件附件发送。我用过下面的命令。

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

但是,我想作为附件发送的文件数量是动态的。所以我想将 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.

有人可以帮我吗?提前致谢。

4

2 回答 2

0

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

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

因为$ATTACH_CMD我使用过echo命令。

于 2014-11-05T11:19:16.993 回答
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
于 2014-11-06T08:45:43.367 回答