के हवाले से सब गलत है। आप एकल उद्धरण, बैकस्लैश, सिंगल कोट, सिंगल कोट, और हमेशा उस क्रम में क्यों उपयोग करते हैं? भले ही, आपके पास एक डबल डबल कोट है, इसलिए शैल आपको उद्धृत स्ट्रिंग के लिए एक समापन उद्धरण जोड़ने की अपेक्षा करता है जो उस डबल डबल कोट के साथ शुरू होता है।
शैली के मामले में, आपको Useless Use of Cat भी खोना चाहिए, और अपनी स्क्रिप्ट को सरल बनाने के बारे में सोचें। कम से कम:
grep -v ^# /abc | grep -i root | sed -e 's/"//g' | awk '{print $2}'
... लेकिन व्यवहार
awk '/^#/ { next } /[Rr][Oo][Oo][Tt]/ { gsub ("\"",""); print $2 }' /abc
क्योंकि awk
और sed
लिपियों में पात्रों में से कुछ खोल करने के लिए एक विशेष अर्थ नहीं होता में, हम उन्हें एकल उद्धरण में डाल दिया। यदि आपको एक स्क्रिप्ट में सिंगल कोट्स की आवश्यकता है, तो आपको उन्हें दोबारा उद्धृत करने की आवश्यकता है; एक लगातार पैटर्न डबल कोट्स में एक स्ट्रिंग के समीप एकल कोट्स में स्ट्रिंग रखना है, जैसे: echo '"'"'"
। यह echos "
(सिंगल कोट्स में उद्धृत) तुरंत '
(डबल कोट्स में उद्धृत) के बाद।
संपादित करें उद्धरण समस्या का अद्यतन विश्लेषण; जोड़ा कोड उदाहरण; सही कोड उदाहरण। अंतिम संपादन अजीब स्क्रिप्ट में gsub
का उद्धरण सुधारता है, और उद्धरण के बारे में एक छोटी सी चर्चा को जोड़ता है।
आप क्या करने की कोशिश कर रहे हैं? दूसरे शब्दों में, आपका इनपुट और आउटपुट क्या है? मुझे लगता है कि आप अपने काम को केवल अजीब के साथ पूरा कर सकते हैं। –