इस सरल पाश पर विचार करें:सरल बैश - *
for f in *.{text,txt}; do echo $f; done
मैं केवल वैध फ़ाइल नाम गूंज करना चाहते हैं। एक स्क्रिप्ट में $ f चर का उपयोग करना सब कुछ तब तक बढ़िया काम करता है जब तक कि उस एक्सटेंशन की कोई भी फाइल न हो।
*.text
*.txt
बजाय गूंज कुछ भी नहीं: एक खाली सेट के मामले में, $ f * .text और इसके बाद के संस्करण लाइन इको को तैयार है। यह एक त्रुटि बनाता है यदि आप किसी वास्तविक वास्तविक फ़ाइल नाम की अपेक्षा रखने वाले किसी भी चीज़ के लिए $ f का उपयोग करने का प्रयास कर रहे हैं और इसके बजाय * प्राप्त हो।
यदि वाइल्डकार्ड से मेल खाने वाली कोई भी फाइलें हैं तो यह एक खाली सेट नहीं है, जैसा कि मैं चाहता हूं। जैसे
123.text
456.txt
789.txt
मैं त्रुटियों के बिना ऐसा कैसे कर सकता हूं और बिना किसी तार के लिए पहली स्ट्रिंग $ f मिलान की अत्यधिक जटिलता के बिना कैसे कर सकता हूं?
यह वही है जो मैं खोज रहा था। धन्यवाद! – user1610022