Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Array slicing 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 extract the first three elements from the array.

Bash Scripting
arr=(apple banana cherry date)
slice=(${arr[@]:[1]:3})
echo "${slice[@]}"
Drag options to blanks, or click blank then click option'
A2
B1
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Starting the slice at 1 will skip the first element.
Using a length other than 3 will give wrong number of elements.
2fill in blank
medium

Complete the code to extract elements starting from the second element to the end.

Bash Scripting
arr=(red green blue yellow)
slice=(${arr[@]:[1])
echo "${slice[@]}"
Drag options to blanks, or click blank then click option'
A0
B1
C3
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Starting at 0 extracts the whole array.
Starting at 2 skips the second element.
3fill in blank
hard

Fix the error in the code to correctly slice the array from the third element, taking two elements.

Bash Scripting
arr=(one two three four five)
slice=(${arr[@]:[1]:2})
echo "${slice[@]}"
Drag options to blanks, or click blank then click option'
A2
B1
C3
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using index 3 starts from the fourth element, not third.
Using index 1 starts from the second element.
4fill in blank
hard

Fill both blanks to slice the array from the second element and take three elements.

Bash Scripting
arr=(cat dog bird fish horse)
slice=(${arr[@]:[1]:[2])
echo "${slice[@]}"
Drag options to blanks, or click blank then click option'
A1
B2
C3
D4
Attempts:
3 left
💡 Hint
Common Mistakes
Starting at 2 skips the second element.
Taking 2 elements returns fewer than needed.
5fill in blank
hard

Complete the code to extract the last three elements from the array using a negative index.

Bash Scripting
arr=(apple bat cherry dog elephant fox)
slice=(${arr[@]:[1])
echo "${slice[@]}"
Drag options to blanks, or click blank then click option'
A3
B-1
C0
D-3
Attempts:
3 left
💡 Hint
Common Mistakes
Using 3 extracts from index 3 to end, which happens to be the same here, but positive indexes count from the start.
Using 0 extracts the entire array.
Using -1 extracts only the last element.

Practice

(1/5)
1. In Bash scripting, what does array slicing do when you use ${array[@]:start:length}?
easy
A. Sorts the array elements alphabetically
B. Deletes elements from the array starting at start index
C. Extracts a part of the array starting at start index with length elements
D. Reverses the array elements from start to length

Solution

  1. Step 1: Understand array slicing syntax

    In Bash, ${array[@]:start:length} extracts elements from the array starting at index start and takes length elements.
  2. Step 2: Compare options with this behavior

    Only Extracts a part of the array starting at start index with length elements correctly describes this extraction. Other options describe unrelated operations.
  3. Final Answer:

    Extracts a part of the array starting at start index with length elements -> Option C
  4. Quick Check:

    Array slicing = Extract part [OK]
Hint: Remember slicing picks elements, not deletes or sorts [OK]
Common Mistakes:
  • Confusing slicing with deleting elements
  • Thinking slicing sorts or reverses the array
  • Mixing up start index and length meaning
2. Which of the following is the correct syntax to slice 3 elements from index 2 in a Bash array named arr?
easy
A. ${arr[2:3]}
B. ${arr[@]:2:3}
C. ${arr:2:3}
D. ${arr[2..4]}

Solution

  1. Step 1: Recall correct array slicing syntax

    In Bash, to slice an array, use ${array[@]:start:length}. The @ is needed to refer to all elements.
  2. Step 2: Check each option

    ${arr[@]:2:3} matches the correct syntax: ${arr[@]:2:3}. ${arr:2:3} misses @, which is required for arrays. Options B and D use invalid syntax.
  3. Final Answer:

    ${arr[@]:2:3} -> Option B
  4. Quick Check:

    Use ${array[@]:start:length} for slicing [OK]
Hint: Use @ inside braces for array slicing syntax [OK]
Common Mistakes:
  • Omitting @ when slicing arrays
  • Using square brackets with colon syntax
  • Trying to slice with invalid range notation
3. Given the Bash array arr=(a b c d e), what is the output of echo ${arr[@]:1:3}?
medium
A. a b c
B. c d e
C. b c d e
D. b c d

Solution

  1. Step 1: Identify the array and slice parameters

    The array is (a b c d e). The slice starts at index 1 and takes 3 elements.
  2. Step 2: Extract elements from index 1 to 3

    Index 0 = a, 1 = b, 2 = c, 3 = d, 4 = e. Taking 3 elements from index 1 gives: b, c, d.
  3. Final Answer:

    b c d -> Option D
  4. Quick Check:

    Slice from 1 length 3 = b c d [OK]
Hint: Count from zero, pick length elements starting at start [OK]
Common Mistakes:
  • Starting count at 1 instead of 0
  • Taking wrong number of elements
  • Confusing output with full array
4. What is wrong with this Bash code snippet for slicing an array?
arr=(x y z)
echo ${arr:1:2}
medium
A. It will output an empty string
B. It will output only one element instead of two
C. It will cause a syntax error because slicing is not allowed
D. It will output 'y z' correctly

Solution

  1. Step 1: Check slicing syntax correctness

    The code uses ${arr:1:2} without @. For arrays, @ is needed to slice multiple elements.
  2. Step 2: Understand the effect of missing @

    Without @, Bash uses the first element x as a scalar string and slices it from index 1 length 2. Since x has length 1, it outputs an empty string.
  3. Final Answer:

    It will output an empty string -> Option A
  4. Quick Check:

    Missing @ slices first elem as string -> empty [OK]
Hint: Always use @ for array slicing, else string slicing happens [OK]
Common Mistakes:
  • Omitting @ and expecting array slice
  • Assuming no error but wrong output
  • Confusing string and array slicing syntax
5. You have a Bash array arr=(1 2 3 4 5). You want to extract the last 3 elements using array slicing. Which command will do this correctly?
hard
A. echo ${arr[@]:-3}
B. echo ${arr[@]: -3:3}
C. echo ${arr[@]:3:3}
D. echo ${arr[@]:3}

Solution

  1. Step 1: Understand negative index slicing in Bash

    Using a negative start index slices from the end. ${arr[@]:-3} extracts from 3rd from end to the end (last 3 elements).
  2. Step 2: Check each option

    ${arr[@]: -3:3} has space after : causing bad substitution. ${arr[@]:3:3} slices from index 3 length 3 but only 2 elements remain (4 5). ${arr[@]:3} slices from 3 to end (4 5). Only ${arr[@]:-3} gets exactly the last 3: 3 4 5.
  3. Final Answer:

    echo ${arr[@]:-3} -> Option A
  4. Quick Check:

    Negative start index slices from end [OK]
Hint: Use negative start index without length to get last elements [OK]
Common Mistakes:
  • Adding space after ':' before negative offset
  • Using slice length larger than remaining elements
  • Not knowing negative indices slice from array end
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