2010-08-13 9 views
111

जीएनयू मेकफ़ाइल मैनुअल में, यह mentions इन उपसर्गों में।मेक में रेसिपी लाइनों के उपसर्ग के रूप में @, - और + क्या करते हैं?

यदि .ONESHELL प्रदान किया गया है, तो केवल नुस्खा की पहली पंक्ति विशेष उपसर्ग वर्णों ('@', '-', और '+') के लिए जांच की जाएगी।

ये उपसर्ग क्या करते हैं, और उनका उल्लेख कहां किया जाता है?

उत्तर

123

वे टैग किए गए कमांड लाइन के लिए मेकअप के व्यवहार को नियंत्रित:

  • @ आदेश निष्पादित किया जाता है की सामान्य 'गूंज' को रोकता है।

  • - का मतलब है कि निष्पादित आदेश की निकास स्थिति को अनदेखा करें (आमतौर पर, गैर-शून्य निकास स्थिति निर्माण के उस हिस्से को रोक देगी)।

  • + का अर्थ है 'आदेशों को make -n' (या 'मेक-टी' या 'मेक -क') के तहत निष्पादित करें जब कमांड सामान्य रूप से निष्पादित नहीं होते हैं। make के लिए POSIX विनिर्देश भी देखें और GNU मेक मैन्युअल के §9.3 भी देखें।

+ संकेतन एक (इसे POSIX मानकीकृत) वास्तविक (गैर मानकीकृत) तंत्र जिससे एक कमांड ${MAKE} या $(MAKE) युक्त लाइन make -n के तहत निष्पादित है सामान्यीकरण है।

(@ जीएनयू बनाओ मैनुअल की §5.2 में चर्चा की है; -§5.5 में वर्णन किया गया;। और §5.7.1+ के उपयोग का उल्लेख है)

29

@ कमांड लाइन को कंसोल पर प्रतिबिंबित करने से रोकता है। आप इसे वैश्विक स्तर पर -s या --keep-silent

- कहने के लिए कहता है, भले ही कमांड किसी कारण से विफल हो। आप इसे वैश्विक स्तर पर -i ध्वज (या --ignore-errors) के माध्यम से कर सकते हैं।

+ मैं आपके पूछने से पहले familar नहीं था। जैसा कि मैं कह सकता हूं, यह -n, -t, और -q के प्रभाव को अस्वीकार करता है, जिनमें से सभी मूल रूप से आदेशों को चलाने के लिए नहीं बताते हैं। तो फ्रंट पर + वाली एक पंक्ति वैसे भी चलती है।

यदि आप आधिकारिक जीएनयू मैनुअल मैनुअल पढ़ते हैं, तो वे सभी Chapter 5 में उल्लेखित हैं। मैनुअल की मेरी पुरानी प्रतिलिपि में जो "कमांड" पर अध्याय था, लेकिन शब्द डु पत्रिका अब "रेसिपी" प्रतीत होती है।