मैं एक Makefile जो एक प्रोग्राम है जो सफलता पर एक गैर शून्य मान चलाता है, और विफलता पर एक और गैर-शून्य मान लौट आते हैं। मुझे पता है कि मैं आदेश को उपसर्ग करके बाहर निकलने की स्थिति को अनदेखा कर सकता हूं - लेकिन यह काम नहीं करता है क्योंकि मुझे यह जानने की आवश्यकता है कि आदेश सफल हुआ है या नहीं।मेकफ़ाइल खोल आमंत्रण की निकास स्थिति कैसे जांचूं?
उत्तर
आप दिए गए मान ही Makefile लाइन पर एक दूसरे आदेश पर, खोल $?
चर है कि पिछले लौटे मान का उपयोग कर परीक्षण कर सकते हैं।
false
कमांड के साथ उदाहरण है कि स्पष्ट रूप से संकलन बंद कर देंगे के लिए:
test:
/bin/false ; /usr/bin/test "$$?" -eq 1 # <-- make does not stop here
/bin/echo "Continues ..."
/bin/false # <-- make stops here
कैसे उपकरण विफल पर बर्ताव करता है पर निर्भर करता है, तो आप सिर्फ आउटपुट फ़ाइल के होने की जाँच कर सकते हैं। कुछ की तरह:
@if test ! -f $(FILE); then exit 2; fi
उपयोग
command || [ $$? -eq v ]
अपने आदेश के रूप में
, आदेश प्रतिस्थापन आदेश के साथ, और साथ वी सफलता पर मूल्य वापस आ गया।
(यह सिर्फ डिडिएर Trosset के जवाब का एक और अधिक कॉम्पैक्ट संस्करण है।)
यह काम नहीं करेगा, एक makefile में के रूप में है, क्योंकि '$?' चर परिभाषाएँ बनाने के अनुसार व्याख्या की जाएगी। आपको इसके बजाय '$$?' का उपयोग करने की आवश्यकता है। –
फिक्स्ड; सुधारों के लिए धन्यवाद। – reinierpost
डिडिएर Trosset जवाब देने के लिए की तुलना करना, यह एक भी पारित करेंगे जब स्थिति 0 से आदेश रिटर्न (मेरे मामले में है कि नहीं है मैं चाहता था)! –
- 1. मेकफ़ाइल खोल
- 2. ruby at_exit निकास स्थिति
- 3. मेकफ़ाइल में कमांड आमंत्रण की गूंज को दबाएं?
- 4. gcc-4.2 निकास स्थिति 1
- 5. PHP ssh2_exec चैनल निकास स्थिति?
- 6. मेकफ़ाइल
- 7. यह कैसे बताना है कि फ़ाइल गिट ट्रैक की गई है (खोल निकास कोड द्वारा)?
- 8. लिनक्स खोल
- 9. निकास
- 10. मेकफ़ाइल
- 11. मेकफ़ाइल में निर्देशिका की प्रतिलिपि कैसे करें?
- 12. कैपिस्ट्रानो और बैश: कमांड निकास स्थिति को अनदेखा करें
- 13. प्रक्रिया की स्थिति की स्थिति
- 14. मेकफ़ाइल को मेकफ़ाइल से कैसे कॉल करें?
- 15. कैसे खोल builtin getopts
- 16. मेकफ़ाइल
- 17. आमंत्रण API
- 18. सी चेतावनी फंक्शन 'निकास' की निहित घोषणा
- 19. मेकफ़ाइल
- 20. प्रक्रिया निकास स्थिति 3 का क्या अर्थ है?
- 21. मेकफ़ाइल
- 22. मेकफ़ाइल
- 23. मेकफ़ाइल
- 24. मेकफ़ाइल
- 25. मेकफ़ाइल
- 26. मेकफ़ाइल
- 27. मेकफ़ाइल
- 28. यूनिट परीक्षणों में विधि आमंत्रण की गणना
- 29. एक मेकफ़ाइल
- 30. असफल $ (खोल) कमांड को कैसे बाधित करें
पहला कदम कार्यक्रम है कि सफलता पर रिटर्न गैर शून्य के मेंटेनर को एक बग रिपोर्ट प्रस्तुत करने के लिए है। –
अच्छा, कार्यक्रम एक वाणिज्यिक विक्रेता से है, इसलिए मुझे संदेह है कि वे कार्यक्रम के व्यवहार को बदल देंगे। – trondd
@trondd जीएनयू मेक जीएनयू परियोजना द्वारा विकसित किया गया है, जो वाणिज्यिक नहीं है। यह विपरीत है: यह मुफ्त सॉफ्टवेयर है। – no92