mailx bcc 옵션이 null로 처리되지 않았습니다.

mailx bcc 옵션이 null로 처리되지 않았습니다.

다음 명령을 사용하여 이메일을 보내고 있는데 모든 매개변수가 제공되는 경우에만 작동합니다.

빈/빈 변수를 처리하는 방법을 알려주십시오. 예를 들어, -c -b는 제공되지 않으면 무시됩니다.

mailx -a ${ATTACH} -s "$SUBJECT" -c "$CC_MAIL" -b "${BCCMAIL}" -r "${FROM}" "${TO_LIST}"

감사합니다, 베라

답변1

인용하다https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

${parameter:+word}

만약에범위비어 있거나 설정되지 않은 경우, 아무것도 대체되지 않으며, 그렇지 않으면 확장됩니다.단어교체됩니다.

mailx ${ATTACH:+-a} "${ATTACH}" ${SUBJECT:+-s} "$SUBJECT" ${CC_MAIL:+-c} "$CC_MAIL" ${BCCMAIL:+-b} "${BCCMAIL}" ${FROM:+-r} "${FROM}" "${TO_LIST}"

예:

echo mailx ${ATTACH:+-a} "${ATTACH}" ${SUBJECT:+-s} "$SUBJECT" ${CC_MAIL:+-c} "$CC_MAIL" ${BCCMAIL:+-b} "${BCCMAIL}" ${FROM:+-r} "${FROM}" "${TO_LIST}"
ATTACH=foo
echo mailx ${ATTACH:+-a} "${ATTACH}" ${SUBJECT:+-s} "$SUBJECT" ${CC_MAIL:+-c} "$CC_MAIL" ${BCCMAIL:+-b} "${BCCMAIL}" ${FROM:+-r} "${FROM}" "${TO_LIST}"
SUBJECT=bar
echo mailx ${ATTACH:+-a} "${ATTACH}" ${SUBJECT:+-s} "$SUBJECT" ${CC_MAIL:+-c} "$CC_MAIL" ${BCCMAIL:+-b} "${BCCMAIL}" ${FROM:+-r} "${FROM}" "${TO_LIST}"

인쇄

mailx
mailx -a foo
mailx -a foo -s bar

관련 정보