sendmail.mc 파일에서“dnl”과“dnl #”의 차이점은 무엇입니까?


10

차이점은 무엇이고 dnldnl #A의 /etc/mail/sendmail.mc파일은? 무언가를 가능하게하려면 앞에 무엇이 필요합니까? 마찬가지로, "댓글을 남기고"싶을 때는 어떤 접두사가 필요합니까?

예를 들면 다음과 같습니다.

dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(foo.com)dnl
dnl MASQUERADE_DOMAIN(foo2.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl

답변:


16

여기 dnl#여기 에는 미묘하지만 중요한 차이점이 있습니다.

dnl"줄 바꿈을 통한 삭제"를 의미합니다 . 당신이 당신을 처리 할 때 sendmail.mcsendmail.cf사용 m4(또는 아마도 일부 프론트 엔드), 문자 dnl와 모든 것을 그들에게 다음 을 포함하여 다음 줄 바꿈은 삭제됩니다. (그리고 그 라인을 모두 종료 와 함께 dnl의 억제 빈 줄을 sendmail.cf출력.)

로 시작하는 것도 dnl라인의 끝을 통해이의 그것을 만들 것 sendmail.mc와로 sendmail.cf.

물론 출력에 남아있는 것은 sendmail 구성이거나으로 시작하는 주석이며 #그대로 복사되어 sendmail.cf무시됩니다.

#위에서 시작하여 삭제하지 sendmail.cf않은 내용은 주석으로 표시됩니다.

귀하의 예에서 누군가 sendmail.cf주석이있는 기능이 없으면 의미가 없으므로 주석이있는 모든 주석 기능이 주석에서 제거되도록 의도했습니다 .


1
당신은하지 않습니다 있는 선을 종료 dnl하지만 당신은 내 간이 빈 라인을하게 될 겁니다 sendmail.cf. 그리고 네, 무언가를 적용하기를 원한다면 실제로 존재해야합니다 sendmail.cf.
Michael Hampton

1
- @MikeB m4는 대소 문자 구분이 DNL되지 않습니다 dnl. 죄송하지만 Stack Exchange 사이트에서 매우 높은 점수를 얻은 answears에서 바보 같은 m4 버그를 보았습니다.
AnFi

... 그래서 내가 명시 적으로 구성 옵션은하지 않아야 효과가 먹고 싶어 수단 경우 것으로 dnldnl #... 그것의 앞에을? 그리고 항상 dnl로 끝내고 싶습니까?
Mike B

@ AndrzejA.Filip 감사합니다. 사이트에서 질문을 편집 할 수 없어서 다시 추가했습니다.
Mike B

3

DNL은 "줄 바꾸기를 통한 삭제"를 의미하며, "다음 줄까지 'dnl'뒤에있는 모든 것을 무시합니다"를 의미합니다.

"dnl #"은 단지 인공적인 명칭입니다. sendmail.mc 파일이 처음 개발되었을 때 "dnl ..."인 것은 주석 처리 된 명령 / 설정이고 "dnl # ..."인 것은 실제로 설명적인 주석이라는 것을 알기를 원했습니다. '#'은 종종 줄의 시작 부분에서 "줄 끝까지 따르는 것"이 ​​주석임을 나타 내기 때문에 주석 해제 될 수있는 명령 / 설정이 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.