जवाबों:
इसका अर्थ है "आउटपुट पर इस कमांड को इको न करें।" तो यह नियम कह रहा है "शेल कमांड निष्पादित करें :
और आउटपुट को इको न करें।
बेशक शेल कमांड :
एक नो-ऑप है, इसलिए यह कह रहा है "कुछ भी नहीं करो, और मत बताओ।"
क्यों?
यहाँ चाल यह है कि आपको दो अलग-अलग वाक्यविन्यासों का अस्पष्ट संयोजन मिला है। मेकअप (1) वाक्य रचना @, जो केवल आदेश प्रतिध्वनित करने के लिए नहीं है के साथ शुरू एक कार्रवाई का उपयोग है। तो एक नियम की तरह
always:
@echo this always happens
उत्सर्जन नहीं होगा
echo this always happens
this always happens
अब, किसी नियम का क्रिया भाग किसी भी शेल कमांड सहित हो सकता है :
। बैश मदद के रूप में अच्छी तरह से यह बताते हैं:
$ help :
:: :
Null command.
No effect; the command does nothing.
Exit Status:
Always succeeds.
@:
(सिर्फ नहीं @
) के संदर्भ में पूछ रहे हैं तो @ Guestolio के जवाब के अलावा यह विकास से बचा हुआ स्टब भी हो सकता है। यह पायथन में एक फ़ंक्शन लिखने जैसा है जिसमें केवल शामिल है pass
। यह कॉपी / पेस्ट के लिए कोड के स्टबिंग ब्लॉक के लिए उपयोगी हो सकता है लेकिन वे आम तौर पर लंबे समय तक मौजूद नहीं होना चाहिए। जब इस तरह से स्टबिंग फ़ाइल अभी भी संकलित करेगी, तो
आप ऐसा क्यों कर सकते हैं, इसके बारे में उत्सुक लोगों के लिए, यह उपयोगी है यदि आप कुछ ऐसा करना चाहते हैं, ताकि आप अपने लक्ष्य के लिए "कुछ भी नहीं करें" आउटपुट न करें।
एक उदाहरण यह है कि यदि आपके पास एक टॉनी टारगेट है जिसे आप हमेशा निष्पादित करते हैं, और इसमें आपके पास कमांड में सशर्त का एक गुच्छा है। आप चाहते हैं कि उन स्थितियों के कम से कम कुछ होने की स्थिति में कुछ भी गलत न हो।
उदाहरण के लिए (लिनक्स की स्क्रिप्ट / Makefile.clean से):
__clean: $(subdir-ymn)
ifneq ($(strip $(__clean-files)),)
+$(call cmd,clean)
endif
ifneq ($(strip $(__clean-dirs)),)
+$(call cmd,cleandir)
endif
ifneq ($(strip $(clean-rule)),)
+$(clean-rule)
endif
@: