2014-11-05 657 views
0

我有一個requiremnet作爲電子郵件附件在shell腳本中發送多個文件。我已經使用了下面的命令。發送多個文件作爲電子郵件中的附件使用mailx

(printf "%s\n" "BODY"; uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt) | mailx -m -s "TEST" [email protected] 

但是,我想作爲附件發送的文件的數量是動態的。所以我想將uuencode ... comand分配給一個變量然後使用它。我已經試過下面的方式,

$ 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" [email protected] 

而我越來越低於錯誤。

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

任何人都可以幫助我嗎?提前致謝。

+0

下面我今天嘗試 - $回聲$(回聲$ ATTACH_CMD) UUENCODE out.txt out.txt; (printf「%s \ n」「BODY」; $(echo $ ATTACH_CMD))| uuencode out.txt out.txt mailx -m -s「TEST」[email protected]我收到了電子郵件,但未收到附件。反而bosy有tect「用法:uuencode [source] remotedest」請幫忙 – DivB 2014-11-06 05:30:02

回答

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" [email protected] 
0

您是否嘗試過使用下面的代碼?不知道爲什麼它的工作原理,但也許下面的代碼可作爲一種變通方法

(printf "%s\n" "BODY"; `echo $ATTACH_CMD`) | mailx -m -s "TEST" [email protected]`? 

對於$ATTACH_CMD我用echo命令。

+0

是的,我有同樣的錯誤。 – DivB 2014-11-05 11:25:09

相關問題