← Back to Bash Course | Chapter 7: String Manipulation | Lesson 4 of 10

Case बदलना

Bash एक string को directly parameter expansion के through uppercase या lowercase में convert कर सकता है, tr जैसे किसी external tool की ज़रूरत के बिना।
Syntax
bash
${variable^^}    # uppercase
${variable,,}    # lowercase
${variable^}     # capitalize first letter

पूरी String को Uppercase और Lowercase करना

${var^^} string के हर character को uppercase में convert करता है, और ${var,,} हर character को lowercase में convert करता है, दोनों Bash natively करता है बिना कोई external process spawn किए। यह tr से pipe करने का एक fast, built-in alternative है।

उदाहरण: Uppercase and Lowercase the Whole String

bash
#!/bin/bash
name="Ada Lovelace"
echo "Uppercase: ${name^^}"
echo "Lowercase: ${name,,}"

सिर्फ पहला Character Capitalize करना

${var^} सिर्फ string के पहले character को uppercase करता है, बाकी untouched छोड़ते हुए, और ${var,} सिर्फ पहले character के lowercasing के लिए वही करता है। यह बाकी को affect किए बिना एक word को capitalize करने के लिए उपयोगी है।

उदाहरण: Capitalizing Just the First Character

bash
#!/bin/bash
word="hello"
capitalized=${word^}
echo "Capitalized: $capitalized"
shouty="WORLD"
lowered_first=${shouty,}
echo "First letter lowered: $lowered_first"

सिर्फ Matching Characters Convert करना

^^ और ,, दोनों एक optional glob pattern accept करते हैं यह restrict करते हुए कि कौन से characters convert हों, तो ${var^^[aeiou]} string में सिर्फ vowels को uppercase करता है consonants को वैसे ही छोड़ते हुए।

यह एक all-or-nothing conversion से आगे fine-grained control देता है।

उदाहरण: Converting Only Matching Characters

bash
#!/bin/bash
word="programming"
vowels_upper=${word^^[aeiou]}
echo "Vowels uppercased: $vowels_upper"

Older Bash के लिए Fallback: tr

Bash 4.0 से पुराने versions पर (जैसे कुछ macOS systems पर shipped stock /bin/bash), ${var^^}/${var,,} available नहीं हैं, इसलिए tr '[:lower:]' '[:upper:]' (या vice versa) pipe किया हुआ portable alternative है।

यह एक external process spawn करने के कारण slower है, लेकिन हर जगह काम करता है।

उदाहरण: Fallback for Older Bash: tr

bash
#!/bin/bash
name="Ada Lovelace"
upper=$(echo "$name" | tr '[:lower:]' '[:upper:]')
echo "Uppercase via tr: $upper"
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह मान लेना कि case conversion parameter expansion (^^, ,,) old Bash versions में काम करता है; यह Bash 4.0 में introduce हुआ था, तो बहुत old Bash (जैसे macOS का stock 3.2) target करने वाली scripts को इसके बजाय tr चाहिए।
  2. Single-character forms (^, ,) को double-character forms (^^, ,,) से confuse करना; single form सिर्फ पहले character को affect करता है, double form पूरी string को affect करता है।
  3. यह भूल जाना कि ये operators सिर्फ ${var^^}-style expansions में plain variables पर काम करते हैं, string literals पर directly नहीं -- आपको text को पहले एक variable में store करना होगा।
चैप्टर सारांश
  • ${var^^} पूरी string को uppercase में convert करता है; ${var,,} पूरी string को lowercase में convert करता है।
  • ${var^} सिर्फ पहला character uppercase करता है; ${var,} सिर्फ पहला character lowercase करता है।
  • ये Bash 4.0+ features हैं; older Bash (जैसे macOS का default 3.2) को इसके बजाय tr '[:lower:]' '[:upper:]' चाहिए।
  • आप सिर्फ एक specific pattern से match करने वाले characters भी convert कर सकते हैं, जैसे ${var^^[aeiou]} सिर्फ vowels uppercase करता है।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.