बैश में, सिंगल कोट्स (''
) और डबल कोट्स (""
) के बीच अंतर क्या हैं?बैश में सिंगल और डबल कोट्स के बीच अंतर
उत्तर
सिंगल कोट्स कुछ भी इंटरपोलेट नहीं करेंगे, लेकिन डबल कोट्स (उदाहरण के लिए चर, बैकटिक्स, कुछ \
भाग निकलें, आदि ...)।
उदाहरण
[email protected]:~# echo "$(echo "upg")"
upg
[email protected]:~# echo '$(echo "upg")'
$(echo "upg")
बैश मैनुअल इस में क्या कहना है:
एकल उद्धरण में संलग्न वर्ण (
'
) उद्धरण के भीतर प्रत्येक चरित्र के वस्तुतः मान बरकरार रखता है। सिंगल कोट्स के बीच एक सिंगल कोट नहीं हो सकता है, यहां तक कि बैकस्लैश से पहले भी।दोहरे उद्धरण चिह्नों (
"
) में संलग्न पात्रों उद्धरण के भीतर सभी पात्रों का शाब्दिक मूल्य को बरकरार रखता है,$
,`
,\
के अपवाद के, और, जब इतिहास विस्तार सक्षम किया गया है,!
साथ। पात्र$
और`
डबल कोट्स के भीतर अपना विशेष अर्थ बनाए रखें (Shell Expansions देखें)। बैकस्लैश केवल निम्नलिखित वर्णों में से एक के बाद अपना विशेष अर्थ बरकरार रखता है:$
,`
,"
,\
, या न्यूलाइन। डबल कोट्स के भीतर, इन वर्णों में से किसी एक के बाद बैकस्लाश हटा दिए जाते हैं। विशेष अर्थ के बिना वर्णों से पहले बैकस्लाश को अनमोडिफाइड छोड़ दिया जाता है। एक डबल कोट को बैकस्लैश से पहले डबल कोट्स के भीतर उद्धृत किया जा सकता है। यदि सक्षम है, तो इतिहास विस्तार तब तक किया जाएगा जब तक कि!
डबल कोट्स में दिखाई नहीं दे रहा है, बैकस्लैश का उपयोग करके बच निकला है।!
से पहले बैकस्लैश हटाया नहीं गया है।विशेष पैरामीटर
*
और@
का विशेष अर्थ है जब डबल कोट्स में (Shell Parameter Expansion देखें)।
यदि आप कुछ गूंजते हैं तो क्या होता है इसका संदर्भ ले रहे हैं, तो सिंगल कोट्स सचमुच उनके बीच जो कुछ है, उसे प्रतिबिंबित करेंगे, जबकि डबल कोट्स उनके बीच चर का मूल्यांकन करेंगे और चर के मान को आउटपुट करेंगे।
उदाहरण के लिए, इस
#!/bin/sh
MYVAR=sometext
echo "double quotes gives you $MYVAR"
echo 'single quotes gives you $MYVAR'
इस दे देंगे:
double quotes gives you sometext
single quotes gives you $MYVAR
accepted answer महान है। मैं एक टेबल बना रहा हूं जो विषय की त्वरित समझ में मदद करता है। स्पष्टीकरण में एक साधारण चर a
के साथ-साथ अनुक्रमित सरणी arr
शामिल है।
अगर हम
a=apple # a simple variable
arr=(apple) # an array with a single element
और फिर echo
दूसरे कॉलम में अभिव्यक्ति निर्धारित करते हैं, हम परिणाम/व्यवहार तीसरे स्तंभ में दिखाया गया है मिलेगा। चौथा स्तंभ व्यवहार को बताता है।
# | Expression | Result | Comments
---+-------------+-------------+--------------------------------------------------------------------
1 | "$a" | apple | variables are expanded inside ""
2 | '$a' | $a | variables are not expanded inside ''
3 | "'$a'" | 'apple' | '' has no special meaning inside ""
4 | '"$a"' | "$a" | "" is treated literally inside ''
5 | '\'' | **invalid** | can not escape a ' within ''; use "'" or $'\'' (ANSI-C quoting)
6 | "red$arocks"| red | $arocks does not expand $a; use ${a}rocks to preserve $a
7 | "redapple$" | redapple$ | $ followed by no variable name evaluates to $
8 | '\"' | \" | \ has no special meaning inside ''
9 | "\'" | ' | \' is interpreted inside ""
10 | "\"" | " | \" is interpreted inside ""
11 | "*" | * | glob does not work inside "" or ''
12 | "\t\n" | \t\n | \t and \n have no special meaning inside "" or ''; use ANSI-C quoting
13 | "`echo hi`" | hi | `` and $() are evaluated inside ""
14 | '`echo hi`' | `echo hi` | `` and $() are not evaluated inside ''
15 | '${arr[0]}' | ${arr[0]} | array access not possible inside ''
16 | "${arr[0]}" | apple | array access works inside ""
17 | $'$a\'' | $a' | single quotes can be escaped inside ANSI-C quoting
18 | '!cmd' | !cmd | history expansion character '!' is ignored inside single quotes
19 | "!cmd" | cmd args | expands to the most recent command matching "cmd"
---+-------------+-------------+--------------------------------------------------------------------
यह भी देखें:
- 1. रुबी - सिंगल और डबल कोट्स के बीच क्या अंतर है?
- 2. पर्ल में सिंगल और डबल कोट्स के बीच क्या अंतर है?
- 3. क्या जावा में सिंगल और डबल कोट्स के बीच कोई अंतर है?
- 4. एसक्यूएल में सिंगल और डबल कोट्स के बीच क्या अंतर है?
- 5. पर्ल में सिंगल और डबल कोट्स के बीच क्या अंतर है?
- 6. रुबी में हैश से पूछने के लिए सिंगल कोट्स और डबल कोट्स का उपयोग करने के बीच क्या अंतर है?
- 7. एक्शनस्क्रिप्ट में सिंगल और डबल कोटेड स्ट्रिंग्स के बीच अंतर
- 8. एक्सएसएलटी फॉर्म इनपुट मूल्य विशेषता में सिंगल और डबल कोट्स?
- 9. एच में सिंगल और डबल कोट्स कैसे लिखें: outputText
- 10. तुलना में सिंगल कोट्स बनाम डबल कोट्स का महत्व क्या है?
- 11. grep पैटर्न एकल और डबल कोट्स
- 12. मैं सिंगल कोट्स
- 13. तीन सिंगल quote'd और अजगर में तीन डबल quote'd docstrings
- 14. PHP में, न्यूल के बीच अंतर क्या है और एक स्ट्रिंग को 2 सिंगल कोट्स
- 15. ग्रोवी में सिंगल या डबल कोट्स के भीतर तारों का क्या अंतर है?
- 16. Regex.Matchches सी # डबल कोट्स
- 17. सिंगल कोट्स के भीतर इंटरपोलेशन
- 18. ग्रहण - डबल कोट्स
- 19. सिंगल कोट्स एक डॉक्टरेट में मान्य हैं?
- 20. पावरहेल डबल कोट्स
- 21. बैश खोल और बैश टर्मिनल के बीच अंतर?
- 22. वीबीस्क्रिप्ट तर्क में डबल कोट्स
- 23. नियमित अभिव्यक्ति में डबल कोट्स
- 24. php सिंगल और डबल उद्धरण
- 25. बनाम 2010 - डबल कोट्स
- 26. perl डबल कोट्स
- 27. एसक्यूएल तैयार कथन में मैं सिंगल और डबल कोट्स से कैसे बच सकता हूं?
- 28. फ्लोट और डबल में PHP के बीच अंतर?
- 29. PHP में डबल कोलन और तीर ऑपरेटरों के बीच अंतर?
- 30. आरएसपीईसी में, नकली और डबल के बीच क्या अंतर है?
कि टेबल [StackOverflow] पर कई सवालों का जवाब है (https://stackoverflow.com) । – C0deDaedalus
स्वीकृत उत्तर अंत में कहता है 'विशेष पैरामीटर * और @ के पास विशेष अर्थ है जब डबल कोट्स में' तो '' * '' '' 'में कैसे आते हैं? –