Sendmail.mc फ़ाइल में "dnl" और "dnl #" के बीच क्या अंतर है?


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.mcऔर बाहर नहीं करेगी sendmail.cf

कुछ भी जो आउटपुट में रहता है, ज़ाहिर है, या तो सेंडमेल कॉन्फ़िगरेशन होगा, या एक टिप्पणी जो शुरू होती है #, जिसे इस रूप में कॉपी किया sendmail.cfजाएगा, जहां उन्हें अनदेखा किया जाएगा।

किसी भी चीज के साथ शुरुआत #और ऊपर डिलीट नहीं की गई यह sendmail.cfटिप्पणी के रूप में अनमोल हो जाएगी ।

आपके उदाहरण में, किसी व्यक्ति के लिए टिप्पणी की गई सभी विशेषताओं को हटा दिया जाना चाहिए sendmail.cf, साथ ही टिप्पणियों को भी हटा दिया जाएगा , क्योंकि टिप्पणियां वर्तमान सुविधाओं के बिना अर्थहीन होंगी।


1
आपको एक पंक्ति समाप्त नहीं करनी है, dnlलेकिन आप अतिरिक्त रिक्त लाइनों के साथ समाप्त करेंगे sendmail.cf। और हां, अगर आप कुछ लेना चाहते हैं, तो यह वास्तव में मौजूद होना चाहिए sendmail.cf...
माइकल हैम्पटन

1
@MikeB m4 मामला संवेदनशील है - DNLनहीं है dnl। क्षमा करें, लेकिन मैंने स्टैक एक्सचेंज साइटों में बहुत उच्च स्कोर के साथ उत्तर में कुछ बेवकूफ एम 4 बग देखे हैं।
एफी

... और इसका मतलब है कि अगर मुझे एक स्पष्ट विन्यास विकल्प चाहिए, तो वह प्रभावी होना चाहिए dnlया उसके dnl #सामने नहीं होना चाहिए ...? और मैं इसे हमेशा dnl के साथ समाप्त करना चाहता हूँ?
माइक बी

@ आंद्रेजा.फिलिप धन्यवाद। साइट ने मुझे प्रश्न को संपादित नहीं करने दिया इसलिए मैंने इसे फिर से जोड़ा।
माइक बी

3

DNL का अर्थ है "न्यूलाइन के माध्यम से हटाएं" जिसका अर्थ है "अगली पंक्ति तक 'dnl' के बाद सब कुछ अनदेखा करें"।

"Dnl #" सिर्फ कृत्रिम नामकरण है। जब Sendmail.mc फ़ाइल को पहली बार विकसित किया गया था, तो वे चाहते थे कि आपको कुछ भी पता चले कि "dnl ..." एक कमांड / सेटिंग थी जिस पर टिप्पणी की गई थी और "dnl # ..." कुछ भी वास्तव में एक वर्णनात्मक टिप्पणी थी जो कि एक कमांड / सेटिंग नहीं थी जिसे अनियंत्रित किया जा सकता था क्योंकि "#" का उपयोग अक्सर "लाइन के अंत तक क्या होता है" यह संकेत देने के लिए एक लाइन की शुरुआत में किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.