Bir sendmail.mc dosyasındaki “dnl” ve “dnl #” arasındaki fark nedir?


10

Arasındaki fark nedir dnlve dnl #bir de /etc/mail/sendmail.mcdosyaya? Bir şeyi etkinleştirmek istersem, ön tarafta olması gereken nedir? Benzer şekilde, bir şeyi "yorumlamak" istersem, hangi ön eke ihtiyacım var?

Örneğin:

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

Yanıtlar:


16

Burada dnlve #burada ince ama önemli bir fark var.

dnl"satırsonu üzerinden sil" anlamına gelir . Eğer Sürecinizi zaman sendmail.mcbir içine sendmail.cfkullanarak m4(ya da muhtemelen bazı ön ucu), karakterler dnlve her şey, onları takip dahil sonraki yeni satır, atılır. (Ve bu hatların hepsi sona ile dnlde bastırmak fazladan boş satıra sendmail.cfçıktı.)

dnlHattın sonundan başlayarak hiçbir şey onu dışarı sendmail.mcve içeri sokmaz sendmail.cf.

Çıktıda kalan her şey elbette ya sendmail yapılandırması ya da olduğu #gibi kopyalanacak olan ve sendmail.cfgöz ardı edilecekleri bir yorum olacaktır.

#Yukarıda başlayan ve silinmeyen herhangi bir şey sendmail.cf, yorum olarak istenmeyen bir hale getirecektir .

Örneğin, birisi sendmail.cfyorumların yanı sıra yorumların tümünün kaldırılması anlamına geliyordu , çünkü yorumlar mevcut özellikler olmadan anlamsız olacaktır.


1
Sen yok olması ile bir çizgi sonuna kadar dnlancak ekstra boş satır ile bitireceğiz sendmail.cf. Ve evet, bir şeyin yürürlüğe girmesini istiyorsanız, aslında mevcut olması gerekir sendmail.cf...
Michael Hampton

1
@MikeB m4 büyük / küçük harfe duyarlıdır - DNLdeğildir dnl. Maalesef, Stack Exchange sitelerinde çok yüksek puan alan cevaplarda birkaç aptal m4 hatası gördüm.
AnFi

... ve bu, açık bir konfigürasyon seçeneğinin etkili olmasını istiyorsam, ETKİLENMEMELİ dnlveya dnl #önünde OLMAMASI anlamına gelir ...? ve bunu hep dnl ile bitirmek ister miyim?
Mike B

@ AndrzejA.Filip Teşekkürler. Site soruyu düzenlememe izin vermedi, bu yüzden yeniden ekledim.
Mike B

3

DNL, "yeni satırdan sil" anlamına gelir.

"Dnl #" sadece yapay isimlendirmedir. Sendmail.mc dosyası ilk geliştirildiğinde "dnl ..." olan her şeyin yorumlanmış bir komut / ayar olduğunu ve "dnl # ..." olan her şeyin gerçekten açıklayıcı bir yorum olduğunu bilmenizi istediler. '#' genellikle bir satırın başlangıcında "satır sonuna kadar takip edenleri" belirtmek için bir yorum olduğu için önerilmeyen bir komut / ayar değildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.