อะไรคือความแตกต่างระหว่าง“ dnl” และ“ dnl #” ในไฟล์ sendmail.mc


10

ความแตกต่างระหว่าง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

คำตอบ:


16

มีความแตกต่างเล็กน้อย แต่สำคัญระหว่างdnlและ#ที่นี่

dnlหมายถึง"ลบผ่านการขึ้นบรรทัดใหม่" เมื่อคุณประมวลsendmail.mcผลการsendmail.cfใช้งานm4(หรืออาจเป็นส่วนหน้า) ตัวละครdnlและทุกสิ่งที่ติดตามพวกเขารวมถึงการขึ้นบรรทัดใหม่ถัดไปจะลดลง (และทุกบรรทัดเหล่านั้นลงท้ายด้วยdnlการระงับบรรทัดว่างพิเศษในsendmail.cfผลลัพธ์)

ไม่มีอะไรที่เริ่มต้นด้วยการdnlผ่านจุดสิ้นสุดของบรรทัดจะทำให้มันออกมาจากและเข้าไปในsendmail.mcsendmail.cf

แน่นอนว่าสิ่งใดก็ตามที่ยังคงอยู่ในผลลัพธ์จะเป็นการกำหนดค่า sendmail หรือความคิดเห็นที่ขึ้นต้นด้วย#ซึ่งจะถูกคัดลอกตามที่เป็นอยู่sendmail.cfซึ่งจะถูกละเว้น

สิ่งที่เริ่มต้นด้วย#และไม่ถูกลบด้านบนจะทำให้sendmail.cfไม่ได้รับการแจ้งเตือนว่าเป็นความคิดเห็น

ในตัวอย่างของคุณมีคนตั้งใจจะลบคุณลักษณะที่มีความคิดเห็นทั้งหมดsendmail.cfรวมถึงความคิดเห็นเนื่องจากความคิดเห็นจะไม่มีความหมายหากไม่มีคุณลักษณะที่มีอยู่


1
คุณไม่ได้ที่จะสิ้นสุดบรรทัดด้วยแต่คุณจะจบลงด้วยบรรทัดว่างพิเศษในการdnl sendmail.cfและใช่ถ้าคุณต้องการบางสิ่งที่จะมีผลจริง ๆ แล้วมันจะต้องปรากฏตัวในsendmail.cf...
Michael Hampton

1
@MikeB M4 เป็นกรณีที่สำคัญ - ไม่ได้DNL dnlขออภัย แต่ฉันเคยเห็นข้อผิดพลาด m4 โง่ ๆ สองสามข้อในการตอบด้วยคะแนนที่สูงมากในไซต์ Stack Exchange
AnFi

... และนั่นหมายความว่าถ้าฉันต้องการให้ตัวเลือกการกำหนดค่าที่ชัดเจนมีผลบังคับใช้ต้องไม่มีdnlหรือdnl #อยู่ข้างหน้ามัน ... ? และฉันจะต้องการจบด้วย 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.