Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Array length in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the length of the array.

Bash Scripting
arr=(apple banana cherry)
echo ${#arr[1]
Drag options to blanks, or click blank then click option'
A[@]
B[*]
C[&]
D[#]
Attempts:
3 left
💡 Hint
Common Mistakes
Using ${#arr} which gives length of first element, not array length.
Using ${#arr[*]} which also works but '@' is preferred for clarity.
2fill in blank
medium

Complete the code to assign the array length to a variable.

Bash Scripting
my_array=(dog cat mouse)
length=[1]
Drag options to blanks, or click blank then click option'
Alength ${#my_array[@]}
Becho ${#my_array[@]}
Ccount ${#my_array[@]}
D${#my_array[@]}
Attempts:
3 left
💡 Hint
Common Mistakes
Using echo inside assignment which causes errors.
Using commands like count or length incorrectly.
3fill in blank
hard

Fix the error in the code to correctly print the array length.

Bash Scripting
fruits=(orange lemon lime)
echo ${#fruits[1]
Drag options to blanks, or click blank then click option'
A[@]
B[*]
C[&]
D[#]
Attempts:
3 left
💡 Hint
Common Mistakes
Using symbols like '#' or '&' inside brackets which cause errors.
Omitting brackets entirely.
4fill in blank
hard

Fill both blanks to create an array and print its length.

Bash Scripting
[1]=(red green blue)
echo ${#colors[2]
Drag options to blanks, or click blank then click option'
Acolors
B[*]
C[@]
Dfruits
Attempts:
3 left
💡 Hint
Common Mistakes
Using different names for the array and length call.
Using '*' instead of '@' which also works but '@' is preferred.
5fill in blank
hard

Fill all three blanks to create an array, assign its length to a variable, and print it.

Bash Scripting
[1]=(sun moon stars)
len=[2]
echo [3]
Drag options to blanks, or click blank then click option'
Acelestial
B${#celestial[@]}
C$len
Dlength
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names inconsistently.
Forgetting the $ when printing the variable.

Practice

(1/5)
1. In bash scripting, which expression correctly gives the number of elements in an array named my_array?
easy
A. ${#my_array[@]}
B. ${my_array[@]}
C. ${#my_array}
D. ${my_array}

Solution

  1. Step 1: Understand array length syntax

    In bash, ${#array[@]} returns the count of elements in the array.
  2. Step 2: Differentiate from other forms

    ${#array} returns the length of the first element, not the number of elements.
  3. Final Answer:

    ${#my_array[@]} -> Option A
  4. Quick Check:

    Array length = ${#my_array[@]} [OK]
Hint: Use ${#array[@]} to get array size, not ${#array} [OK]
Common Mistakes:
  • Using ${#array} which gives length of first element
  • Using ${array[@]} which expands elements, not count
  • Confusing ${array} with array length
2. Which of the following is the correct syntax to store the length of a bash array files into a variable count?
easy
A. count=${files[@]}
B. count=${#files}
C. count=${#files[@]}
D. count=${files}

Solution

  1. Step 1: Use correct length syntax

    To get the number of elements, use ${#files[@]}.
  2. Step 2: Assign to variable

    Assigning with count=${#files[@]} stores the array length in count.
  3. Final Answer:

    count=${#files[@]} -> Option C
  4. Quick Check:

    Variable count = ${#files[@]} [OK]
Hint: Assign length with count=${#array[@]} to get element count [OK]
Common Mistakes:
  • Using count=${files[@]} which assigns all elements, not length
  • Using count=${#files} which gives length of first element
  • Forgetting to use ${} around the expression
3. What will be the output of this bash script?
arr=(apple banana cherry)
echo ${#arr[@]}
medium
A. apple
B. 18
C. 0
D. 3

Solution

  1. Step 1: Understand array initialization

    The array arr has 3 elements: apple, banana, cherry.
  2. Step 2: Use ${#arr[@]} to get count

    ${#arr[@]} returns the number of elements, which is 3.
  3. Final Answer:

    3 -> Option D
  4. Quick Check:

    Array length = 3 [OK]
Hint: Count elements with ${#array[@]} to get number, not string length [OK]
Common Mistakes:
  • Confusing ${#arr[@]} with ${#arr} which gives length of first element
  • Expecting total string length instead of element count
  • Printing array without expansion
4. Identify the error in this bash script snippet that tries to print the number of elements in array data:
data=(1 2 3 4)
echo ${#data}
medium
A. It prints the length of the first element, not the array size
B. The array is not declared properly
C. The echo command is missing quotes
D. The syntax ${#data} is invalid in bash

Solution

  1. Step 1: Check array length syntax

    ${#data} returns the length of the first element (string length), not the number of elements.
  2. Step 2: Correct syntax for array length

    Use ${#data[@]} to get the count of elements in the array.
  3. Final Answer:

    It prints the length of the first element, not the array size -> Option A
  4. Quick Check:

    Use ${#array[@]} for count, not ${#array} [OK]
Hint: Use ${#array[@]} to get count, ${#array} gives first element length [OK]
Common Mistakes:
  • Assuming ${#array} gives number of elements
  • Not using [@] inside the braces
  • Thinking echo needs quotes for this syntax
5. You have a bash array items that may be empty or have elements. You want to print "Empty" if it has zero elements, or "Count: N" where N is the number of elements. Which script snippet correctly does this?
hard
A. if [ ${#items} -eq 0 ]; then echo "Empty"; else echo "Count: ${#items[@]}"; fi
B. if [ ${#items[@]} -eq 0 ]; then echo "Empty"; else echo "Count: ${#items[@]}"; fi
C. if [ ${#items[@]} -eq 0 ]; then echo "Empty"; else echo "Count: ${#items}"; fi
D. if [ ${#items} -eq 0 ]; then echo "Empty"; else echo "Count: ${#items}"; fi

Solution

  1. Step 1: Check condition for empty array

    Use ${#items[@]} to get the number of elements. If zero, array is empty.
  2. Step 2: Print count correctly

    Use ${#items[@]} to print the count of elements, not ${#items} which is length of first element.
  3. Final Answer:

    if [ ${#items[@]} -eq 0 ]; then echo "Empty"; else echo "Count: ${#items[@]}"; fi -> Option B
  4. Quick Check:

    Use ${#array[@]} for count in both condition and output [OK]
Hint: Always use ${#array[@]} to check and print array length [OK]
Common Mistakes:
  • Using ${#array} instead of ${#array[@]} for count
  • Mixing length of first element with element count
  • Forgetting to use [ ] in if condition
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