बैश वैरिएबल विस्तार में ":" (कोलन) ऑपरेटर क्या करता है: VAR = $ {TEMP: 3}?


12

एक चर में निम्नलिखित पंक्ति का क्या अर्थ है bash?

VAR=${TEMP:3}

1
@ आचोस कृपया अपने उत्तर से बेहतर मिलान करने के लिए प्रश्न को संपादित न करें ;-)।
पायलट

@ पायलट 6 मैंने अर्थ नहीं बदला है। या मैं कुछ गलत समझ रहा हूं? मैंने इसे (शीर्षक) और अधिक पठनीय पाया बेहतर था .. BTW के : अन्य अर्थ भी हैं, यह उदाहरण के लिए एक बैश बिलिन कमांड है। मैं इससे अलग होना चाहता था, क्योंकि सवाल स्पष्ट रूप से उस बारे में नहीं है। उपयोगकर्ता का मतलब क्या :है एक चर नाम के अंदर ऑपरेटर। मुझे क्षमा करें, मैं किसी को नाराज़ नहीं करना चाहता, लेकिन आपका रोलबैक कोई मतलब नहीं रखता है और इसे उलट दिया जाना चाहिए, लेकिन मैं यहाँ एक संपादन-युद्ध नहीं चाहता। इसके अलावा यह बैश और स्क्रिप्टिंग विशिष्ट है इसलिए उन टैग को क्यों हटाएं?
अराजकता

आपने हटाए TEMPऔर VARचरों को बदल दिया और प्रश्न को इस तरह बदल दिया कि अन्य उत्तर अर्थ खो गए।
पायलट

@ Pilot6 मेरे जवाब में मैं एक VARचर का संदर्भ नहीं देता हूं । लेकिन, हालांकि, आप उस एक चीज़ को बदलने के लिए स्वतंत्र हैं। मैं प्रश्न को अधिक सामान्य, कम विशिष्ट बनाना चाहता था। यह अन्य उत्तरों को तोड़फोड़ करने के लिए कभी नहीं था।
अराजकता

2
@SnakeDoc नहीं, यह विषय पर है सब ठीक
muru

जवाबों:


15

यह परिवर्तनशील विस्तार है और इस तरह काम करता है (ध्यान दें कि यह केवल bashऔर kshविशिष्ट है और POSIX शेल में काम नहीं करेगा):

$ x=1234567890
$ echo ${x:3}
4567890
$ echo ${x:7}
890
$ echo ${x:3:5}
45678

  • ${var:pos}इसका मतलब है कि चर varका विस्तार, ऑफसेट से शुरू हो रहा है pos
  • ${var:pos:len}इसका मतलब है कि लंबाई के साथ varऑफसेट से शुरू होकर, चर का विस्तार होता है ।poslen

Woks zshभी में
कोस

2
@kos यह उल्लेख के लायक नहीं है, क्योंकि सब कुछ zsh= में काम करता है ) मैंने zsh1 सप्ताह में एक आहार स्क्रिप्ट बनाई और 10 किग्रा खो दिया।
अराजकता

zshजब आप इसका उपयोग नहीं कर रहे हों, तो यह सुनिश्चित करने के लिए कि आप टाइपिंग पथ पर डम्बल बनाते हैं :)
kos

1
@ कोस हेहे, यह कुछ हद तक jquery की तरह है: meta.stackexchange.com/a/19492
chaos

1
हा, मैं प्यार करता हूँ कि कैसे "वास्तव में पर्याप्त jQuery नहीं" के कारण सवाल का जवाब देने का प्रयास करने वाला एकमात्र उत्तर मिला! :)
कोस


2

यह ऑपरेटर वेरिएबल के पहले 3 अक्षरों को काट TEMPदेता है और बाकी को वेरिएबल को असाइन करता है VAR

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.