[英]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.