Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Uppercase and lowercase conversion in Bash Scripting - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Uppercase and lowercase conversion
Start with input string
↓
Apply uppercase conversion
↓
Store or print uppercase result
↓
Apply lowercase conversion
↓
Store or print lowercase result
↓
End
The script takes a string, converts it to uppercase, then to lowercase, and outputs both results.
Execution Sample
Bash Scripting
input="Hello World"
upper=${input^^}
lower=${input,,}
echo "$upper"
echo "$lower"
This script converts 'Hello World' to uppercase and lowercase, then prints both.
Execution Table
StepVariableValueActionOutput
1input"Hello World"Assign input string
2upper"HELLO WORLD"Convert input to uppercase using ${input^^}
3lower"hello world"Convert input to lowercase using ${input,,}
4Print uppercase stringHELLO WORLD
5Print lowercase stringhello world
6End of script
💡 Script ends after printing both uppercase and lowercase strings.
Variable Tracker
VariableStartAfter Step 2After Step 3Final
input"Hello World""Hello World""Hello World""Hello World"
upper"HELLO WORLD""HELLO WORLD""HELLO WORLD"
lower"hello world""hello world"
Key Moments - 3 Insights
Why does ${input^^} convert the string to uppercase?
Because in bash, the ^^ operator converts all characters in the variable to uppercase, as shown in execution_table step 2.
What does ${input,,} do differently from ${input^^}?
The ,, operator converts all characters to lowercase, as shown in execution_table step 3, unlike ^^ which converts to uppercase.
Why do we see no change in the original 'input' variable?
Because the conversion operators create new variables 'upper' and 'lower' without modifying the original 'input', as tracked in variable_tracker.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 2, what is the value of 'upper'?
A"Hello World"
B"hello world"
C"HELLO WORLD"
D"HELLO world"
💡 Hint
Check the 'Value' column for 'upper' at step 2 in execution_table.
At which step does the script print the lowercase string?
AStep 5
BStep 3
CStep 4
DStep 2
💡 Hint
Look at the 'Action' and 'Output' columns in execution_table to find when lowercase is printed.
If we change ${input^^} to ${input^}, what would happen to 'upper'?
AAll characters become uppercase
BOnly the first character becomes uppercase
CAll characters become lowercase
DNo change to the string
💡 Hint
Recall bash parameter expansion: ^ uppercases first char, ^^ uppercases all chars.
Concept Snapshot
Bash uppercase: ${var^^} converts all letters to uppercase
Bash lowercase: ${var,,} converts all letters to lowercase
Original variable stays unchanged
Use echo to print results
Simple and fast string case conversion
Full Transcript
This bash script starts by assigning the string 'Hello World' to the variable 'input'. Then it creates a new variable 'upper' by converting all letters of 'input' to uppercase using ${input^^}. Next, it creates 'lower' by converting all letters of 'input' to lowercase using ${input,,}. The script then prints the uppercase string followed by the lowercase string. The original 'input' variable remains unchanged throughout. This shows how to easily convert string cases in bash scripting.

Practice

(1/5)
1. In bash scripting, which syntax converts the value of a variable name to all uppercase letters?
easy
A. Using uppercase(name)
B. Using ${name,,}
C. Using ${name^^}
D. Using toUpperCase(name)

Solution

  1. Step 1: Understand bash variable expansion for case conversion

    Bash supports ${variable^^} to convert all letters in variable to uppercase.
  2. Step 2: Compare options with bash syntax

    Using ${name^^} uses ${name^^}, which is the correct bash syntax. Using ${name,,} converts to lowercase, and options C and D are not valid bash syntax.
  3. Final Answer:

    Using ${name^^} -> Option C
  4. Quick Check:

    Uppercase conversion = ${variable^^} [OK]
Hint: Use ${variable^^} to uppercase text in bash [OK]
Common Mistakes:
  • Confusing uppercase and lowercase syntax
  • Using non-bash functions like toUpperCase()
  • Forgetting the double caret ^^
2. Which of the following is the correct syntax to convert the variable text to lowercase in bash?
easy
A. echo ${text,,}
B. echo ${text^^}
C. echo ${text^}
D. echo ${text,}

Solution

  1. Step 1: Recall lowercase conversion syntax in bash

    To convert all letters to lowercase, bash uses ${variable,,}.
  2. Step 2: Analyze each option

    echo ${text,,} uses ${text,,} which converts all letters to lowercase. echo ${text^^} converts to uppercase, C and D convert only the first letter.
  3. Final Answer:

    echo ${text,,} -> Option A
  4. Quick Check:

    Lowercase conversion = ${variable,,} [OK]
Hint: Use ${variable,,} to lowercase all letters in bash [OK]
Common Mistakes:
  • Using single comma instead of double for all letters
  • Mixing uppercase and lowercase syntax
  • Confusing ^ and , operators
3. What is the output of the following bash script?
word="HelloWorld"
echo ${word,,}
medium
A. helloworld
B. helloWorld
C. HelloWorld
D. HELLOWORLD

Solution

  1. Step 1: Understand the variable and conversion

    The variable word contains "HelloWorld". The expression ${word,,} converts all letters to lowercase.
  2. Step 2: Apply lowercase conversion

    Converting "HelloWorld" to lowercase results in "helloworld".
  3. Final Answer:

    helloworld -> Option A
  4. Quick Check:

    Lowercase conversion of HelloWorld = helloworld [OK]
Hint: Lowercase all letters with ${variable,,} [OK]
Common Mistakes:
  • Expecting only first letter to change
  • Confusing uppercase and lowercase syntax
  • Ignoring case conversion operator
4. The following bash script is intended to convert input to uppercase, but it does not work as expected:
input="bashScript"
echo $input^^

What is the error?
medium
A. Variable name is incorrect
B. Missing braces around the variable for case conversion
C. Using single caret instead of double caret
D. Uppercase conversion is not supported in bash

Solution

  1. Step 1: Identify correct syntax for uppercase conversion

    Bash requires braces around the variable when using case conversion, like ${input^^}.
  2. Step 2: Analyze the script

    The script uses $input^^ without braces, which is invalid syntax and will not convert case.
  3. Final Answer:

    Missing braces around the variable for case conversion -> Option B
  4. Quick Check:

    Use ${variable^^} with braces for uppercase [OK]
Hint: Always use braces ${} for case conversion in bash [OK]
Common Mistakes:
  • Omitting braces around variable
  • Using single caret ^ for all letters
  • Assuming bash lacks uppercase conversion
5. You have a list of filenames stored in a bash array: files=("Report1.txt" "summary2.TXT" "DATA3.Txt"). You want to convert all filenames to lowercase and print them line by line. Which script correctly does this?
hard
A. for f in "${files[@]}"; do echo tolower($f); done
B. for f in "${files[@]}"; do echo ${f^^}; done
C. for f in files; do echo ${f,,}; done
D. for f in "${files[@]}"; do echo ${f,,}; done

Solution

  1. Step 1: Understand the goal and array iteration

    The goal is to convert each filename to lowercase and print it. Iterating over "${files[@]}" correctly accesses each element.
  2. Step 2: Check each option's correctness

    for f in "${files[@]}"; do echo ${f,,}; done uses ${f,,} to convert to lowercase and iterates correctly. for f in "${files[@]}"; do echo ${f^^}; done converts to uppercase, C iterates incorrectly (missing quotes and array expansion), D uses a non-bash function tolower().
  3. Final Answer:

    for f in "${files[@]}"; do echo ${f,,}; done -> Option D
  4. Quick Check:

    Lowercase array elements with ${var,,} in loop [OK]
Hint: Use for loop with ${var,,} to lowercase array items [OK]
Common Mistakes:
  • Using uppercase conversion instead of lowercase
  • Incorrect array iteration syntax
  • Using non-existent bash functions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard