我有一个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.
任何人都可以帮我这个吗?提前谢谢。
答案 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