📖 Scenario: You work in a small office where you often receive text data in mixed cases. To keep things neat, you want to convert text to all uppercase or all lowercase.
🎯 Goal: Build a simple Bash script that converts a given string to uppercase and lowercase.
📋 What You'll Learn
Create a variable with a specific string
Create a variable to hold the uppercase version
Create a variable to hold the lowercase version
Print both uppercase and lowercase results
💡 Why This Matters
🌍 Real World
Converting text case is useful for formatting data, preparing text for case-insensitive comparisons, or cleaning up user input.
💼 Career
Many automation scripts require text normalization. Knowing how to convert case in Bash helps in writing robust shell scripts for system administration and data processing.
Progress0 / 4 steps
1
Create the original text variable
Create a variable called text and set it to the exact string "Hello World".
Bash Scripting
Hint
Use text="Hello World" to create the variable.
2
Create uppercase and lowercase variables
Create a variable called upper_text that converts text to uppercase using tr. Then create a variable called lower_text that converts text to lowercase using tr.
Bash Scripting
Hint
Use $(echo "$text" | tr '[:lower:]' '[:upper:]') for uppercase and similarly for lowercase.
3
Print the uppercase and lowercase variables
Use echo to print the value of upper_text and then print the value of lower_text on the next line.
Bash Scripting
Hint
Use echo "$upper_text" and echo "$lower_text" to print the results.
4
Final script output
Run the script to see the uppercase and lowercase versions of the original text printed exactly as shown.
Bash Scripting
Hint
Just run the script to see the output.
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
Step 1: Understand bash variable expansion for case conversion
Bash supports ${variable^^} to convert all letters in variable to uppercase.
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.
Final Answer:
Using ${name^^} -> Option C
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
Step 1: Recall lowercase conversion syntax in bash
To convert all letters to lowercase, bash uses ${variable,,}.
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.
Final Answer:
echo ${text,,} -> Option A
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
Step 1: Understand the variable and conversion
The variable word contains "HelloWorld". The expression ${word,,} converts all letters to lowercase.
Step 2: Apply lowercase conversion
Converting "HelloWorld" to lowercase results in "helloworld".
Final Answer:
helloworld -> Option A
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
Step 1: Identify correct syntax for uppercase conversion
Bash requires braces around the variable when using case conversion, like ${input^^}.
Step 2: Analyze the script
The script uses $input^^ without braces, which is invalid syntax and will not convert case.
Final Answer:
Missing braces around the variable for case conversion -> Option B
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
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.
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().
Final Answer:
for f in "${files[@]}"; do echo ${f,,}; done -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.