कोई बुरा आश्चर्य नहीं - डिफ़ॉल्ट, व्यवहार पारंपरिक, मानक-अनुरूप पैटर्न वाक्यविन्यास के साथ संगतता के लिए केवल वहां है।
है कौन सा कहना है: यह (संभावना नहीं यद्यपि) संभव है कि किसी लेखन fo+(o).*
वास्तव में+
और कोष्ठक इरादा पैटर्न उनके कोड के अनुरूप का शाब्दिक हिस्से के रूप में इलाज किया जाना है। POSIX sh विनिर्देश कॉल के मुकाबले इस अभिव्यक्ति को अलग-अलग तरीके से समझने के लिए बाश के लिए बहुत कम मामलों में डिफ़ॉल्ट रूप से किया जाता है (echo -e
xpg_echo
के साथ तुरंत एकमात्र ऐसा होता है जो तुरंत दिमाग में आता है) ।
यह सामान्य मामले में जहां पार्टी एक्सटेंशन POSIX मानक के आधार पर व्यवहार अपरिभाषित बढ़ा रहे हैं से अलग है - ऐसे मामलों में जहां एक आधार रेखा POSIX खोल आम तौर पर एक त्रुटि फेंक होगा, लेकिन पार्टी के बजाय कुछ नया और अलग स्पष्ट रूप से प्रलेखित व्यवहार प्रदान करता है - - क्योंकि इन पात्रों को स्वयं मिलान करने के रूप में इलाज करने की आवश्यकता को POSIX द्वारा परिभाषित किया गया है।
the relevant part of the specification के शब्दों में, जोर देने के साथ कहा:
एक साधारण चरित्र एक पैटर्न है कि खुद से मेल खाते हैं जाएगा। यह एनयूएल को छोड़कर समर्थित चरित्र सेट में कोई भी चरित्र हो सकता है, Quoting में उन विशेष शैल वर्णों को उद्धृत करने की आवश्यकता है, और निम्नलिखित तीन विशेष पैटर्न वर्ण। मिलान चरित्र के एन्कोडिंग के लिए उपयोग किए गए बिट पैटर्न पर आधारित होगा, न कि चरित्र के ग्राफिक प्रतिनिधित्व पर। यदि कोई चरित्र (सामान्य, खोल विशेष, या पैटर्न विशेष) उद्धृत किया गया है, तो वह पैटर्न चरित्र से मेल खाएगा। खोल विशेष पात्रों को हमेशा उद्धरण की आवश्यकता होती है।
जब गैर उद्धृत और एक ब्रैकेट अभिव्यक्ति के बाहर, निम्नलिखित तीन पात्रों पैटर्न के विवरण में विशेष अर्थ नहीं होंगे:
?
- एक प्रश्न चिह्न एक पैटर्न है कि किसी भी चरित्र से मेल खाते हैं जाएगा।
*
- एक तारांकन एक पैटर्न है जो Patterns Matching Multiple Characters में वर्णित अनुसार कई वर्णों से मेल खाता है।
[
- खुला ब्रैकेट एक पैटर्न ब्रैकेट अभिव्यक्ति पेश करेगा।
इस प्रकार, मानक स्पष्ट रूप से किसी भी गैर NUL ?
, *
या [
या खुद को मैच के लिए के हवाले से की आवश्यकता होती है के रूप में कहीं और सूचीबद्ध के अलावा अन्य चरित्र की आवश्यकता है। डिफ़ॉल्ट रूप से extglob बंद होने के बैश का व्यवहार यह इस मानक के साथ अपने डिफ़ॉल्ट विन्यास में अनुरूप करने की अनुमति देता है।
हालांकि, अपनी खुद की स्क्रिप्ट और अपने स्वयं के इंटरैक्टिव खोल के लिए, जब तक आप असामान्य पैटर्न के साथ POSIX श के लिए लिखा कोड चलाने की आदत बना रहे हैं शामिल, सक्रिय करने के extglob
आम तौर पर कर रही लायक है।
स्रोत
2013-06-19 12:57:25
तो मेरे .bashrc में सेट करने के लिए लायक/सुरक्षित है? – hardcode57
@ hardcode57 हां। –