bash - बैश regex=~ ऑपरेटर




shell unix (2)

ऑपरेटर =~ क्या कहा जाता है? क्या यह केवल बाईं तरफ के दाएं तरफ की तुलना करने के लिए प्रयोग किया जाता है?

परीक्षण चलाने के दौरान डबल स्क्वायर ब्रैकेट की आवश्यकता क्यों होती है?

अर्थात। [[ $phrase =~ $keyword ]]

धन्यवाद


  1. ऑपरेटर =~ क्या कहा जाता है?

    मुझे यकीन नहीं है कि इसका नाम है। बैश दस्तावेज़ केवल इसे =~ ऑपरेटर कहते हैं।

  2. क्या यह केवल बाईं तरफ के दाएं तरफ की तुलना करने के लिए प्रयोग किया जाता है?

    दायीं तरफ एक विस्तारित नियमित अभिव्यक्ति माना जाता है। यदि बाएं तरफ से मेल खाता है, तो ऑपरेटर 0 , और 1 अन्यथा देता है।

  3. परीक्षण चलाने के दौरान डबल स्क्वायर ब्रैकेट की आवश्यकता क्यों होती है?

    क्योंकि =~ [[ expression ]] यौगिक कमांड का ऑपरेटर है।


=~ ऑपरेटर एक नियमित अभिव्यक्ति मैच ऑपरेटर है। यह ऑपरेटर नियमित अभिव्यक्ति मिलान के लिए उसी ऑपरेटर के पर्ल के उपयोग से प्रेरित है।

[[ ]] विशेष रूप से बाश द्वारा इलाज किया जाता है; मान लें कि [ ] निर्माण का एक उन्नत संस्करण:

  • [ ] वास्तव में एक शेल अंतर्निहित कमांड है, जिसे वास्तव में बाहरी कमांड के रूप में कार्यान्वित किया जा सकता है। अपने / usr / bin को देखो, वहां संभवतः "[" नामक प्रोग्राम है! कड़ाई से बोलते हुए, [ ] बैश वाक्यविन्यास का हिस्सा नहीं है।

  • [[ ]] एक खोल कीवर्ड है, जिसका अर्थ है कि यह खोल वाक्यविन्यास का हिस्सा है। इस निर्माण के अंदर, कुछ आरक्षित पात्र अर्थ बदलते हैं। उदाहरण के लिए, ( ) अर्थ है अन्य प्रोग्रामिंग भाषा जैसे ब्रांडेसिस (पैरों के अंदर क्या निष्पादित करने के लिए एक सबहेल लॉन्च नहीं करना)। एक और उदाहरण यह है कि < और > मतलब है कि शेल पुनर्निर्देशन से कम और उससे अधिक नहीं। यह तार्किक अभिव्यक्तियों की अधिक "प्राकृतिक" उपस्थिति की अनुमति देता है, लेकिन यह नौसिखिया बैश प्रोग्रामर के लिए भ्रमित हो सकता है।

Wirawan







unix