가변 제목으로 메일을 보내는 Unix 명령

가변 제목으로 메일을 보내는 Unix 명령

우리는 메일을 보내기 위한 UNIX 프로그램을 만들었습니다. 이 프로그램에서는 사용자 입력을 기반으로 이메일 제목과 본문을 얻습니다(Oracle 동시 프로그램을 통해).

예를 들어:

동시 프로그램에 대한 전체 사용자 입력은 $1다음과 같이 변수에 저장됩니다.

XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" \
FCP_USERID=5667 \
FCP_USERNAME="SRI" \
FCP_PRINTER="noprint" \
FCP_SAVE_OUT=Y \
FCP_NUM_COPIES=1 \
"9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" \
"/tmp_mnt2/attachments" \
"[email protected]" \
"This is the subject for the mail" \
"PFA for the list of Invoices that are stuck in workflow."

여기서 메일 제목은This is the subject for the mail우리는 그것을 변수에 저장합니다.SUB이메일 본문은PFA for the list of Invoices that are stuck in workflow.다른 변수에 저장합니다FCP_BODY.

이제 메일을 보내기 위해 아래와 같이 작성합니다.

echo "Hello,
${FCP_BODY}
Thanks,
Bommi
"| mailx -s $SUB

그런데 제가 받은 메일에는 본문은 제대로 배달됐는데 제목만 있네요.This.

누구든지 이메일을 보내기 위해 전체 제목을 얻는 방법을 알려줄 수 있습니까?

답변1

변수를 인용해야 합니다 $SUB.

... mailx -s "$SUB"

참고: 공백이 포함된 변수는 다음의 영향을 받습니다.분사. 즉, 명령이 있으면

mailx -s $SUB

변수에는 $SUB문자열이 포함되어 있습니다."This is the subject for the mail"

이전 명령은 다음으로 확장됩니다.

mailx -s This is the subject for the mail

즉, -sflag(subject)는 매개변수만 가져옵니다.This, 나머지 단어는 추가 인수로 전달되고 (대부분의 경우) 쓰레기처럼 처리됩니다.

대신에,

mailx -s "$SUB"

로 확장됨

mailx -s "This is the subject for the mail"

이것이 당신이 원하는 것입니다.


관련 질문과 답변:

관련 정보