escaping - How to keep single quotes from confusing ksh -n -


इसलिए मेरे पास एक सरल शेल स्क्रिप्ट है जिसे try.sh :

  #! / Bin / ksh इको "'" | Awk '/' \ '"/ {print"' \ '' ello, world}} '  

और यह ठीक चलाता है:

  $ ./ Try.sh 'ello, world   

लेकिन ksh -n इसके साथ पूरी तरह से खुश नहीं है:

  $ ksh -n ./try.sh/try.sh: चेतावनी: रेखा 3: 'उद्धरण गायब हो सकता है ./try.sh: चेतावनी: पंक्ति 5:' बोली अनुपलब्ध हो सकती है   

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

[अपडेट: जाहिरा तौर पर वाक्यविन्यास परीक्षक लाइन को फ़्लैग कर रहा है क्योंकि एम्बेडेड न्यूलाइन के साथ एक उद्धृत स्ट्रिंग के बाद एक दूसरे उद्धृत स्ट्रिंग के साथ कोई हस्तक्षेप करने वाला सफेद स्थान नहीं होता है। डेविड कॉर्न का कहना है कि वह केएसएच के अगले संस्करण के लिए जांच की समीक्षा करेंगे। विवरण के लिए देखें।]

यहां कोड का एक न्यूनतम स्निपेट है आईएमओ, किसी चरम पर एक कोट चार को गुमराह करने वाली समस्या का सबसे शानदार तरीका है, क्योंकि यह उद्धरण / अनकॉटेड पैटर्न से बचा जाता है, और आप देख रहे एजेक कोड उतने ही हैं जितना awk प्रक्रिया के लिए होता है। < पूर्व> $ इको "'" | मूल सवाल यह है कि मैं बोली / अन्तर्पण पैटर्न को कहता हूं, जो कि है यूनिक्स शेल में एम्बेडेड अन्य भाषाओं के साथ बहुत कुछ उपयोग किया।

इस चाल में एक असामान्य उद्धृत कार्यक्रम पाठ के साथ एक साथ कंसटानेटेड उद्धृत और अनक्ॉटेड स्ट्रिंग की एक श्रृंखला के साथ awk प्रस्तुत की जाती है। यह कोड को बनाए रखने में बहुत मेहनत करता है, क्योंकि आप एक प्रोग्रामर के रूप में, मान्य ए्वैक कोड अब और नहीं देख सकते हैं।

विशेष अक्षर को चर के रूप में पास करने के लिए इस पैटर्न से बचा जाता है। < / html>

Comments

Popular posts from this blog

java - NullPointerException for a 2d Array -

python - Assemble mpeg file unable to play in mediaplayer -

c# - NameSpace Manager or XsltContent to parse aspx page -