bash - Makefile and rm -f file.{ext1,ext2,ext3} issue -


क्या आप मुझे समझा सकते हैं, क्यों Makefile नियम:

  साफ़: rm -f foo {Bar1, bar2, bar3}  

फाइलों को निकालने में कोई परिणाम नहीं है: foo.bar1 foo.bar2 और foo.bar3? मेरा मानना ​​है कि मैंने कई मेकफाइल में कई बार पैटर्न देखा है, लेकिन मैं वर्तमान में अपना खुद का मेकफाइल लिख रहा हूं और वह नियम सही ढंग से नहीं कर सकता (कोई भी फाइल नहीं हटाई जाती है)।

मैं उपयोग कर रहा हूं:

  • जीनोयू बनाओ 3.81
  • ग्नु बाश 4.1.5

बैश ने मुझे लगता है कि पैटर्न के रूप में evals:

  $ echo test। {A, b, c} test.a test.b test.c  

धन्यवाद!

UPDATE

दाऊद के संकेत के लिए धन्यवाद मुझे ऊपर वर्णित समस्या के लिए समाधान मिला Gnu डिफ़ॉल्ट रूप से / bin / sh का उपयोग करता है और यही कारण है कि a। A.1 a.2 a.3 के लिए {1,2,3} का मूल्यांकन नहीं किया जाता है।

बनाने के लिए अपने मेकफाइल में निम्नलिखित पंक्ति जोड़ें:

  SHELL = / bin / bash  

के बजाय bash का उपयोग करें। (1,2,3) } को a.1 a.2 a.3 माना जाता है

क्या कोई फ़ाइल निर्देशिका में साफ़ करें यदि हां, तो उस लक्ष्य को आज तक ध्यान में रखा जाएगा और इसी आदेश को नहीं चलाया जाएगा। इसे ठीक करने के लिए, इस लाइन को अपने मेन्फ़ाइल में जोड़ें:

  .फ़ोन: साफ  

यदि आप चलाते हैं तो आउटपुट प्राप्त करें

<प्री> बनाने के लिए: 'साफ' अप टू डेट है।

तो शायद आपकी समस्या है।


Comments