It returns the length (number of characters) of the string stored in the variable var.
Click to reveal answer
beginner
How do you find the length of the string stored in variable name?
Use ${#name} to get the number of characters in name.
Click to reveal answer
beginner
What will be the output of this bash code?
text="hello"
echo ${#text}
The output will be 5 because the string "hello" has 5 characters.
Click to reveal answer
beginner
Can ${#var} be used on empty strings? What is the result?
Yes, it can. If the string is empty, ${#var} returns 0.
Click to reveal answer
intermediate
Is ${#var} a command or a parameter expansion in bash?
It is a parameter expansion that returns the length of the string stored in the variable var.
Click to reveal answer
What does ${#var} return in bash?
AValue of the variable var
BFirst character of var
CLength of the string in variable var
DNumber of words in var
✗ Incorrect
${#var} returns the number of characters in the string stored in var.
If var="abcde", what is the output of echo ${#var}?
A5
B4
Cabcde
DError
✗ Incorrect
The string "abcde" has 5 characters, so ${#var} outputs 5.
What will echo ${#empty} print if empty=""?
Aempty
B0
C1
DError
✗ Incorrect
An empty string has length 0, so ${#empty} returns 0.
Which of these is the correct way to get string length in bash?
A${#var}
Blen(var)
Clength(var)
Dvar.length
✗ Incorrect
In bash, ${#var} is the correct syntax to get the length of a string.
If var="hello world", what does echo ${#var} output?
AError
B10
C2
D11
✗ Incorrect
The string "hello world" has 11 characters including the space.
Explain how to find the length of a string stored in a variable in bash using ${#var}.
Think about how bash expands variables to get string length.
You got /3 concepts.
Describe what happens when you use ${#var} on a variable containing spaces or special characters.
Consider the string as a sequence of characters.
You got /3 concepts.
Practice
(1/5)
1. What does the expression ${#var} do in a bash script?
easy
A. It converts the variable var to uppercase.
B. It returns the value of the variable var.
C. It counts the number of words in the variable var.
D. It returns the length of the string stored in the variable var.
Solution
Step 1: Understand the syntax ${#var}
This syntax in bash returns the length of the string stored in the variable var.
Step 2: Differentiate from other operations
It does not return the value itself, count words, or change case. It specifically counts characters.
Final Answer:
It returns the length of the string stored in the variable var. -> Option D
Quick Check:
Length of string = ${#var} [OK]
Hint: Remember: ${#var} counts characters in var [OK]
Common Mistakes:
Confusing ${#var} with $var (value of variable)
Thinking it counts words instead of characters
Assuming it changes the string content
2. Which of the following is the correct way to get the length of a string variable name in bash?
easy
A. length=${name#}
B. length=$#name
C. length=${#name}
D. length=$name#
Solution
Step 1: Recall correct syntax for string length
The correct syntax to get string length is ${#variable}, so for name it is ${#name}.
Step 2: Check each option
length=${name#} uses wrong placement of #, length=$#name uses $ and # incorrectly, length=$name# appends # after variable incorrectly.
Final Answer:
length=${#name} -> Option C
Quick Check:
Use ${#var} to get length [OK]
Hint: Use ${#var} exactly to get string length [OK]
Common Mistakes:
Placing # after variable name instead of before
Using $# which counts positional parameters, not string length
Confusing variable expansion syntax
3. What will be the output of the following bash script?
text="Hello World"
echo ${#text}
medium
A. 11
B. Error
C. 12
D. 10
Solution
Step 1: Count characters in the string "Hello World"
The string has 11 characters: 5 letters in "Hello", 1 space, and 5 letters in "World".
Step 2: Understand ${#text} returns string length
The command echo ${#text} prints the length, which is 11.
Final Answer:
11 -> Option A
Quick Check:
Length of "Hello World" = 11 [OK]
Hint: Count spaces too when using ${#var} [OK]
Common Mistakes:
Ignoring spaces in length count
Counting words instead of characters
Expecting output to be string value instead of length
4. Consider this bash script snippet:
myvar=Hello
length=$#myvar
echo $length
What is the problem with this script?
medium
A. It will print the number of positional parameters, not string length.
B. It will print the length of the string correctly.
C. It will cause a syntax error due to wrong variable name.
D. It will print the string value instead of length.
Solution
Step 1: Understand what $# means in bash
The symbol $# returns the number of positional parameters passed to the script, not the length of a string variable.
Step 2: Analyze the script behavior
Assigning length=$#myvar tries to get positional parameters count, ignoring myvar. So it does not get string length.
Final Answer:
It will print the number of positional parameters, not string length. -> Option A
Quick Check:
$# counts parameters, not string length [OK]
Hint: Use ${#var} for length, not $# [OK]
Common Mistakes:
Confusing $# (positional params) with ${#var} (string length)
Expecting $# to work on variables
Missing braces around variable name
5. You want to check if a user input stored in variable input is empty or not in a bash script. Which condition correctly uses string length to do this?
hard
A. if [ $#input -eq 0 ]; then echo "Empty input"; fi
B. if [ ${#input} -eq 0 ]; then echo "Empty input"; fi
C. if [ $input -eq 0 ]; then echo "Empty input"; fi
D. if [ ${input#} -eq 0 ]; then echo "Empty input"; fi
Solution
Step 1: Use ${#input} to get string length
To check if input is empty, we check if its length is zero using ${#input}.
Step 2: Write correct if condition syntax
The condition [ ${#input} -eq 0 ] correctly tests if the string length is zero.
Final Answer:
if [ ${#input} -eq 0 ]; then echo "Empty input"; fi -> Option B
Quick Check:
Check empty string with ${#var} == 0 [OK]
Hint: Test empty string with if [ ${#var} -eq 0 ] [OK]
Common Mistakes:
Using $#input which is invalid
Comparing string value directly to number
Misplacing # symbol in variable expansion
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.