Bash arrays are a fundamental feature that allows users to store and manipulate multiple values in a single variable. Arrays provide a way to organize data efficiently and perform various operations on the elements. Here’s an overview of Bash arrays:
Declaration and Initialization:
1. Indexed Arrays:
In Bash, indexed arrays are the most common type. You can declare and initialize an array as follows:
my_array=("value1" "value2" "value3")
Elements are accessed using indices, starting from 0:
echo ${my_array[0]} # Output: value1
2. Associative Arrays:
Bash also supports associative arrays, where elements are accessed using keys instead of indices:
declare -A assoc_array
assoc_array["key1"]="value1"
assoc_array["key2"]="value2"
Accessing elements by keys:
echo ${assoc_array["key1"]} # Output: value1
Operations on Arrays:
1. Adding Elements:
You can add elements to an array using the +=
operator:
my_array+=("new_value")
2. Iterating Over Elements:
Loop through array elements:
for element in "${my_array[@]}"; do
echo $element
done
3. Length of Array:
Get the length of the array:
length=${#my_array[@]}
4. Slicing Arrays:
Extract a portion of the array:
sliced_array=("${my_array[@]:1:2}")
This creates a new array with elements from index 1 to 2 (exclusive).
5. Deleting Elements:
Remove an element from the array:
unset my_array[1]
Examples:
1. Indexed Array:
fruits=("apple" "orange" "banana")
echo ${fruits[1]} # Output: orange
2. Associative Array:
declare -A ages
ages["Alice"]=25
ages["Bob"]=30
echo ${ages["Alice"]} # Output: 25
3. Looping Through Array:
for fruit in "${fruits[@]}"; do
echo $fruit
done
Bash arrays are versatile and provide a flexible way to work with collections of data in shell scripts. Whether you’re dealing with a list of values or key-value pairs, Bash arrays offer a convenient and efficient solution for managing and manipulating data.