В чем разница между dnl
и dnl #
в /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
Есть тонкая, но важная разница между dnl
и #
Вот.
dnl
средства "удалить через новую строку". Когда вы обрабатываете свой sendmail.mc
в sendmail.cf
с помощью m4
(или, возможно, какой-то интерфейс), персонажи dnl
и все, что за ними следует, включая следующая новая строка будет удалена. (И все эти строки конец с участием dnl
чтобы подавить лишние пустые строки в sendmail.cf
вывод.)
Ничего не начинается с dnl
через конец строки выйдет из sendmail.mc
и в sendmail.cf
.
Все, что остается в выводе, конечно же, будет либо конфигурацией sendmail, либо комментарием, начинающимся с #
, который будет скопирован как есть в sendmail.cf
, где они будут проигнорированы.
Все, что начинается с #
и не удаленный выше превратится в sendmail.cf
без возражений в качестве комментария.
В вашем примере кто-то хотел удалить все комментируемые функции из sendmail.cf
, а также комментарии, поскольку комментарии были бы бессмысленными без присутствующих функций.
DNL означает «удалить через новую строку», что на самом деле означает «игнорировать все после 'dnl' до следующей строки».
"DNL #" - это просто искусственная номенклатура. Когда файл sendmail.mc был впервые разработан, они хотели, чтобы вы знали, что все, что было "dnl ...", было командой / параметром, которое было закомментировано, а все, что было "dnl # ..." было действительно описательным комментарием, который не была командой / параметром, который можно было бы раскомментировать, потому что '#' часто используется в начале строки, чтобы указать, что «то, что следует до конца строки», является комментарием.