스크립트의 명령줄에 CTRL-D를 어떻게 전달합니까?

스크립트의 명령줄에 CTRL-D를 어떻게 전달합니까?

이 라인을 사용하고 있어요

 ( cat bodyText.txt; uuencode backup.tar ) | mail -s "backup" [email protected]

cron에 의해 트리거되는 bash 스크립트에서.

줄은 거의 완벽하지만 메시지와 첨부 파일을 보낼 수 있도록 입력을 기다리는 Ctrl동안 멈춥니다.D

Ctrl이 줄을 작동시키려면 bash 스크립트에 -를 어떻게 포함해야 합니까 ?D

답변1

  • uuencode는: uuencode 이름 < 소스 파일

  • 어쩌면 마지막 빈 줄이 필요할 수도 있습니다. ; echo -e "\n\n" ;닫는 괄호 앞에 추가하고 다시 시도하시겠습니까? -

귀하의 경우에는 다음과 같습니다.

( cat bodyText.txt; uuencode backup.tar < backup.tar ; echo -e "\n\n" ; ) | mail -s "backup" [email protected]

또 다른 방법은 mutt첨부 파일을 더 잘 처리하고 MIME 유형 등을 이해하는 데 사용하는 것입니다.

mutt -s "the subject" -a backup.tar -- [email protected] < bodyText.txt

답변2

다른 사람들이 말했듯이 Control-D는 쉘에게 파일 끝을 보내도록 지시하는 방법입니다. 스트림이 닫히면 스트림에서 읽는 프로세스가 파일 끝에 도달해야 합니다.

하지만 이미 존재하는 것을 더 완전한 형태로 구현하려는 것 같습니다. 물론 이렇게 해야 하는 이유가 있을 수 있지만 기존 솔루션에 관심이 있다면mpack/먼팩파일을 MIME 인코딩하여 이메일을 통해 보내는 명령줄 프로그램입니다. 당신은 읽을 수있다맨페이지귀하의 요구 사항을 충족하는지 확인하십시오.

답변3

네 말 뜻은:

uuencode backup.tar < bodyText.txt | mail -s "backup" [email protected]

답변4

Ctrl+D를 피하려면 자세한 모드(-v)를 사용하세요.

echo -e 'Mail body'| mail -v -s 'Mail Subject' [email protected]

관련 정보