2012-07-02 2 views
1

메일 명령을 호출하면 스크립트가 오류없이 일시 중지되는 것으로 나타났습니다. 스크립트를 닫으려면 Ctrl-c를 누르거나 프로세스 ID에 kill 명령을 실행해야합니다.메일 명령에서 쉘 스크립트가 응답을 멈 춥니 다.

스크립트의 관련 부분은 다음과 같습니다 :

EMAIL_TO="[email protected]" 

if [ -f /www/archives/pdf/pdf_201207021048.tar ]; then 
    echo "file exists" 
else 
    echo "file does not exist" 
fi 

echo "sending mail next..." 

mail -s "pdfbackup" "$EMAIL_TO" 

echo "mail sent?" 

이 실행

, 나는 텍스트 "다음 메일을 보내 ..."더 아무것도보고 있어요. 절대로 프롬프트로 돌아 가지 않습니다.

스크립트가 메모리에 여전히 ps -ax | grep myscript.sh.

제목과 이메일 주위에 따옴표를 사용하고 다시 시도해 보았습니다. 같은 결과가 어느쪽으로 나 생성됩니다.

내가 뭘 잘못하고 있니?

man mail에서
+0

또한 유닉스에 질문 .. ... 명령에

echo "This is the body" | mail -s "Subject" "[email protected]" 

또는

mail -s "Subject" "[email protected]" <<< "This is the body" 

을 몸과 파이프를 제공 할 수 있습니다 또는 귀하의 파일에서 몸을 읽을 수 있습니다/리눅스 : http://unix.stackexchange.com/q/42145/4667 –

답변

6

: 하나 또는 더 많은 사람들에게 메시지를 보내려면
메일 보내기

는 메일이 메일이 발송됩니다 누구에게 사람의 이름입니다 인수로 호출 할 수 있습니다. 그런 다음 메시지를 입력하고 줄의 처음에 a를 입력해야합니다. 답장 또는 발신 메일 아래 섹션에는 편지를 작성할 때 사용할 수있는 몇 가지 메일 기능이 설명되어 있습니다.

메시지 본문이 필요합니다. 개행은 <C-d>을 사용하고 빈 줄과 <C-d>으로 메시지를 끝냅니다. 또는 당신은

mail -s "Subject" "[email protected]" < body_in_file.txt 
+1

bash는 "here-string"기능을 가지고 있습니다 :'mail -s subject recipient <<< "this is body"' –

+0

솔루션, 글렌. – Conner

관련 문제