0
이메일 당 첨부 파일로 여러 개의 이메일을 보내야하는 스크립트를 작성하려고합니다. 메일 첨부 파일 크기 제한 때문입니다.쉘 스크립팅 : 루프에서 mailx를 호출
디렉토리에 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 [email protected] \
-s "$SUBJECT_LINE" \
$TO_LIST < /dev/null
echo "[`date`] Done"
fileCounter=$(($fileCounter + 1))
done
mailx를 루프에서 호출하려고합니다. 나는뿐만 아니라 다음을 시도
내가 에코 사용하여 인쇄하지만 파일이 있지만 루프에서 mailx의 명령은 다음을 반환 할 때 ZipFile에 이름을 볼 수 있어요for file in file0*.zip
do
...
done
가 :
No such file or directory
콘솔에서 동일한 mailx 명령을 실행하여 전자 메일을 보낼 수 있습니다. 루프없이 하나의 전자 메일을 보낼 수도 있지만 루프 내부에서 그렇게하면 문제가 발생할 수 있습니다. 내가 놓친 게 있니?
안녕하세요 Amar 내가보고있는 것은 전체 경로를 추가하지 않고 파일의 이름 만 선언한다는 것입니다. 셸 스크립트가 파일의 위치를 인식하지 못하기 때문에 파일의 전체 경로를 사용해보십시오.)에 있습니다. variablare'ZIPFILE'에 전체 경로를 추가하십시오. 'ZIPFILE = "이/IS/THE/FILES/PATH/file0 $ {fileCounter} .zip"' –
게시하기 전에 전체 경로를 테스트에 추가했습니다. 그것도 작동하지 않았다. 위의 코드 스 니펫 앞의 줄에 "파일이있는 디렉토리로 이동"을 시도했습니다. 어느 쪽도 효과가 없었다. – Amar