मेरे पास इको कमांड के समान व्यवहार को लागू करने के लक्ष्य के साथ एक प्रोजेक्ट है। मेरी समस्या बैकस्लैश के साथ है। मेरी जानकारी कहती है कि जब कोई बैकस्लैश दिखाई देता है तो आपको अगले चरित्र को एक साधारण चरित्र के रूप में देखना चाहिए, लेकिन यहां मुझे लगता है कि यह वही नहीं है।

यह एक उदाहरण:

echo \\\\
OUTPUT : \

यहां समस्या यह है कि मैं उम्मीद करता हूं कि आउटपुट केवल एक ही नहीं बल्कि 2 बैकस्लैश हो। 2 बैकस्लैश प्राप्त करने के लिए मुझे 6 बैकस्लैश लिखने होंगे:

echo \\\\\\

क्या कोई इस व्यवहार को समझने में मेरी मदद कर सकता है?

0
REVERSI 16 अप्रैल 2020, 04:09

1 उत्तर

सबसे बढ़िया उत्तर

कई परतें हैं जहां बैकस्लैश की व्याख्या की जाती है। यह खोल (अन्य स्थानों के बीच) में एक भागने वाला चरित्र है। एक बैकस्लैश के बाद एक कैरेक्टर दूसरे कैरेक्टर के लिए एक एस्केप कोड होता है (उदाहरण के लिए, \n को लाइन ब्रेक के रूप में व्याख्या किया जाता है)।

जब आप पहली बार echo \\\\\\ निष्पादित करते हैं, तो शेल एस्केप सीक्वेंस को पार्स करता है और \\\ को कमांड (इस मामले में इको) को पास करता है।

खोल पर स्ट्रिंग को उद्धृत करने से वहां व्याख्या को रोका जा सकेगा (यानी echo "\\" सचमुच इको कमांड में दो बैकस्लैश पास करेगा)। आपके पास या तो व्याख्या की एक अतिरिक्त परत है या आपका प्रोग्राम गलत तरीके से बैकस्लैश अनुक्रम को संभाल रहा है। अंततः, आपको प्रत्येक परत के लिए इसे बचाना होगा।

1
akenion 16 अप्रैल 2020, 02:42