簡體   English   中英

Shell腳本:循環調用mailx

[英]Shell Scripting: Calling mailx in a loop

我正在嘗試編寫一個腳本,使用該腳本需要發送多封電子郵件,每封電子郵件帶有一個文件作為附件。 這是由於郵件附件大小的限制。

我在目錄中有zip文件,它們是file01.zip,file02.zip等,這些文件大約有4-5個。

-- File count is normally passed in
numFiles=5
fileCounter=1
datestr="`date +"%m/%d/%Y"`"

while [ $fileCounter -le $numFiles ]
do
    SUBJECT_LINE="Weekly files ($fileCounter of $numFiles) - $datestr"

    echo "[`date`] E-mailing file ($fileCounter of $numFiles) ... "
    ZIPFILE="file0$fileCounter.zip"
    echo $ZIPFILE
    ls -ltr $ZIPFILE
    mailx -a "$ZIPFILE" \
          -r no-reply@host.com \
          -s "$SUBJECT_LINE" \
          $TO_LIST < /dev/null
    echo "[`date`] Done"
    fileCounter=$(( $fileCounter + 1 ))
done

如您所見,我試圖循環調用mailx。 我也嘗試了以下

for file in file0*.zip
do
...


done

使用echo將它們打印出來時,我可以看到ZIPFILE名稱,但是盡管文件在那里,循環中的mailx命令仍返回以下內容:

No such file or directory

我可以從控制台運行相同的mailx命令,並發送電子郵件。 我也可以不循環發送一封電子郵件,但是在循環內進行發送似乎會引起問題。 我想念什么嗎?

在作為mailx附件的文件名($ ZIPFILE)中,我可能看不到一個或多個字符。 我今天在進行故障排除時再次輸入了腳本的某些部分,從而解決了該問題。 但是上面的腳本很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM