Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Substring extraction (${var:offset: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 extract the substring 'world' from the variable.

Bash Scripting
text="hello world"
sub=${text:[1]:5}
echo "$sub"
Drag options to blanks, or click blank then click option'
A1
B0
C5
D6
Attempts:
3 left
💡 Hint
Common Mistakes
Using offset 0 or 1 extracts the wrong part of the string.
Forgetting that offset counts from zero.
2fill in blank
medium

Complete the code to extract the first 4 characters from the variable.

Bash Scripting
filename="report2024.txt"
prefix=${filename:[1]:4}
echo "$prefix"
Drag options to blanks, or click blank then click option'
A4
B1
C0
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Starting at offset 1 misses the first character.
Using offset equal to length extracts nothing.
3fill in blank
hard

Fix the error in the code to correctly extract '2024' from the filename.

Bash Scripting
filename="report2024.txt"
year=${filename:[1]:4}
echo "$year"
Drag options to blanks, or click blank then click option'
A7
B6
C4
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using offset 7 or 4 extracts wrong parts.
Confusing offset with length.
4fill in blank
hard

Fill both blanks to extract 'script' from the variable.

Bash Scripting
word="bashscript"
sub=${word:[1]:[2]
echo "$sub"
Drag options to blanks, or click blank then click option'
A4
B6
C7
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong offset or length extracts incorrect substring.
Mixing up offset and length values.
5fill in blank
hard

Fill both blanks to extract 'log' from the filename variable.

Bash Scripting
filename="system.log.2024"
sub=${filename:[1]:[2]
echo "$sub"
Drag options to blanks, or click blank then click option'
A7
B3
C4
D6
Attempts:
3 left
💡 Hint
Common Mistakes
Using offset 6 or 4 extracts wrong substring.
Using length 4 extracts extra characters.

Practice

(1/5)
1. What does the expression ${var:2:3} do in bash scripting?
easy
A. Extracts 3 characters from var starting at index 2
B. Extracts 2 characters from var starting at index 3
C. Extracts 3 characters from var starting at index 0
D. Extracts the entire string var ignoring offset and length

Solution

  1. Step 1: Understand substring syntax

    The syntax ${var:offset:length} extracts a substring from var starting at offset with length characters.
  2. Step 2: Apply to given expression

    Here, offset is 2 and length is 3, so it extracts 3 characters starting from index 2 (0-based).
  3. Final Answer:

    Extracts 3 characters from var starting at index 2 -> Option A
  4. Quick Check:

    Substring = characters from index 2, length 3 [OK]
Hint: Offset is start index, length is number of chars [OK]
Common Mistakes:
  • Confusing offset with length
  • Forgetting offset starts at 0
  • Assuming length is mandatory
2. Which of the following is the correct syntax to extract 4 characters starting at position 1 from variable text?
easy
A. ${text:1:4}
B. ${text:4:1}
C. ${text:1-4}
D. ${text:1,4}

Solution

  1. Step 1: Recall correct substring syntax

    The correct syntax uses colon separators: ${var:offset:length}.
  2. Step 2: Match syntax to options

    ${text:1:4} matches this exactly with offset 1 and length 4. Others use invalid separators or wrong order.
  3. Final Answer:

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

    Correct syntax uses colons [OK]
Hint: Use colons, not commas or dashes [OK]
Common Mistakes:
  • Using commas or dashes instead of colons
  • Swapping offset and length
  • Missing braces around variable
3. Given filename="report2024.txt", what is the output of echo ${filename:6:4}?
medium
A. port
B. 2024
C. 202
D. txt

Solution

  1. Step 1: Identify substring start and length

    Offset is 6, length is 4. The string is "report2024.txt".
  2. Step 2: Extract substring from position 6

    Counting from 0: r(0) e(1) p(2) o(3) r(4) t(5) 2(6) 0(7) 2(8) 4(9). Extract 4 chars starting at index 6: "2024".
  3. Final Answer:

    2024 -> Option B
  4. Quick Check:

    Substring at 6 length 4 = "2024" [OK]
Hint: Count from zero, then take length chars [OK]
Common Mistakes:
  • Starting count at 1 instead of 0
  • Extracting wrong substring length
  • Confusing characters with digits
4. What is wrong with this code snippet?
var="hello world"
echo ${var:5,3}
medium
A. Offset 5 is out of range
B. Length 3 is too large
C. Comma is invalid separator; should use colon
D. Variable name is incorrect

Solution

  1. Step 1: Check substring syntax

    The substring syntax requires colons between offset and length, not commas.
  2. Step 2: Identify error in code

    The code uses a comma ${var:5,3} which is invalid and causes a syntax error.
  3. Final Answer:

    Comma is invalid separator; should use colon -> Option C
  4. Quick Check:

    Use colons, not commas [OK]
Hint: Use colons between offset and length [OK]
Common Mistakes:
  • Using commas instead of colons
  • Assuming offset out of range causes error
  • Misnaming variable
5. You have a date string date="2024-06-15". Which command extracts the month part ("06") using substring extraction?
hard
A. ${date:3:2}
B. ${date:6:2}
C. ${date:4:2}
D. ${date:5:2}

Solution

  1. Step 1: Locate month position in date string

    The string is "2024-06-15". Counting from 0: 2(0) 0(1) 2(2) 4(3) -(4) 0(5) 6(6) -(7) 1(8) 5(9). Month starts at index 5.
  2. Step 2: Extract 2 characters starting at index 5

    Using ${date:5:2} extracts "06" which is the month.
  3. Final Answer:

    ${date:5:2} -> Option D
  4. Quick Check:

    Month = substring at 5 length 2 [OK]
Hint: Count chars from zero, dash counts as char [OK]
Common Mistakes:
  • Starting count at 1 instead of 0
  • Extracting wrong substring length
  • Confusing day and month positions
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