Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Why arrays handle lists of data in Bash Scripting

Choose your learning style10 modes available
Introduction
Arrays let you keep many pieces of related information together in one place. This helps you organize and work with lists of data easily.
You want to store a list of filenames to process one by one.
You need to keep track of multiple user inputs in a script.
You want to save a list of server IP addresses to connect to.
You have a set of options or choices to check in your script.
You want to loop through a list of items to perform the same action.
Syntax
Bash Scripting
declare -a array_name
array_name=(item1 item2 item3 ...)
# Access item: ${array_name[index]}
# Get all items: ${array_name[@]}
Arrays start with index 0, so the first item is at index 0.
Use ${array_name[@]} to get all items in the array.
Examples
Stores three fruits and prints the first one: apple.
Bash Scripting
declare -a fruits
fruits=(apple banana cherry)
echo ${fruits[0]}
Shows what happens with an empty array (prints nothing).
Bash Scripting
declare -a empty_array
# This array has no items yet
echo ${empty_array[@]}
Array with one item prints that item.
Bash Scripting
declare -a single_item
single_item=(onlyone)
echo ${single_item[0]}
Prints the last item in the array: blue.
Bash Scripting
declare -a colors
colors=(red green blue)
echo ${colors[2]}
Sample Program
This script shows how to create an array, add an item, and access items by index.
Bash Scripting
#!/bin/bash

# Create an array of animals
declare -a animals
animals=(dog cat bird)

# Print all animals before adding
echo "Animals before adding: ${animals[@]}"

# Add a new animal
animals+=(fish)

# Print all animals after adding
echo "Animals after adding: ${animals[@]}"

# Print the first animal
echo "First animal: ${animals[0]}"

# Print the last animal
last_index=$((${#animals[@]} - 1))
echo "Last animal: ${animals[$last_index]}"
OutputSuccess
Important Notes
Accessing an index that does not exist returns an empty string.
Adding items with += appends to the array without overwriting.
Arrays are useful when you want to group related data and loop through it.
Summary
Arrays store multiple related items in one variable.
You can access items by their position using indexes.
Arrays help organize and process lists of data easily in scripts.

Practice

(1/5)
1. Why do we use arrays in bash scripting?
easy
A. To create new files automatically
B. To store only one number at a time
C. To run commands faster
D. To store multiple related items in one variable

Solution

  1. Step 1: Understand what arrays do

    Arrays hold many items together in one variable, like a list.
  2. Step 2: Compare options

    Only To store multiple related items in one variable correctly says arrays store multiple related items.
  3. Final Answer:

    To store multiple related items in one variable -> Option D
  4. Quick Check:

    Arrays = store many items [OK]
Hint: Arrays hold lists, not single values [OK]
Common Mistakes:
  • Thinking arrays store only one value
  • Confusing arrays with commands
  • Believing arrays create files
2. Which is the correct way to declare an array named fruits with items apple, banana, and cherry in bash?
easy
A. fruits={apple; banana; cherry}
B. fruits=(apple banana cherry)
C. fruits=[apple, banana, cherry]
D. fruits=apple,banana,cherry

Solution

  1. Step 1: Recall bash array syntax

    Bash arrays use parentheses with space-separated items: array=(item1 item2).
  2. Step 2: Check each option

    Only fruits=(apple banana cherry) uses parentheses and spaces correctly.
  3. Final Answer:

    fruits=(apple banana cherry) -> Option B
  4. Quick Check:

    Array syntax = parentheses with spaces [OK]
Hint: Use parentheses and spaces for arrays [OK]
Common Mistakes:
  • Using square brackets like other languages
  • Separating items with commas
  • Using curly braces incorrectly
3. What will be the output of this bash script?
colors=(red green blue)
echo ${colors[1]}
medium
A. green
B. red
C. blue
D. colors[1]

Solution

  1. Step 1: Understand array indexing in bash

    Bash arrays start at index 0, so colors[0] = red, colors[1] = green.
  2. Step 2: Identify the echoed element

    The script echoes colors[1], which is green.
  3. Final Answer:

    green -> Option A
  4. Quick Check:

    Index 1 = green [OK]
Hint: Array indexes start at zero in bash [OK]
Common Mistakes:
  • Thinking index starts at 1
  • Printing the variable name instead of value
  • Confusing array syntax with other languages
4. Find the error in this bash array usage:
myarray=(one two three)
echo $myarray[2]
medium
A. Missing quotes around array items
B. Array declaration syntax is wrong
C. Incorrect way to access array element
D. No error, script runs fine

Solution

  1. Step 1: Check array declaration

    Declaration with parentheses is correct: myarray=(one two three).
  2. Step 2: Check array element access

    Access must use braces: ${myarray[2]}, not $myarray[2].
  3. Final Answer:

    Incorrect way to access array element -> Option C
  4. Quick Check:

    Use ${array[index]} to access elements [OK]
Hint: Use braces ${} to access array elements [OK]
Common Mistakes:
  • Using $array[index] without braces
  • Adding commas in declaration
  • Forgetting parentheses in declaration
5. You want to store a list of filenames in an array and print each filename on a new line. Which script correctly does this?
hard
A. files=(file1.txt file2.txt file3.txt) for f in ${files[@]}; do echo $f; done
B. files=[file1.txt, file2.txt, file3.txt] for f in $files; do echo $f; done
C. files=(file1.txt file2.txt file3.txt) for f in $files; do echo $f; done
D. files={file1.txt file2.txt file3.txt} for f in ${files[@]}; do echo $f; done

Solution

  1. Step 1: Check array declaration

    files=(file1.txt file2.txt file3.txt) for f in ${files[@]}; do echo $f; done uses parentheses and space-separated items, which is correct.
  2. Step 2: Check loop syntax

    files=(file1.txt file2.txt file3.txt) for f in ${files[@]}; do echo $f; done uses for f in ${files[@]} to loop over all items correctly.
  3. Final Answer:

    files=(file1.txt file2.txt file3.txt) for f in ${files[@]}; do echo $f; done -> Option A
  4. Quick Check:

    Correct array and loop syntax = files=(file1.txt file2.txt file3.txt) for f in ${files[@]}; do echo $f; done [OK]
Hint: Use ${array[@]} to loop all items [OK]
Common Mistakes:
  • Using square brackets for arrays
  • Looping over $files instead of ${files[@]}
  • Using curly braces for array declaration
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