Bash Arrays

Working with arrays

Array Declaration

arr=() # empty array
arr=(val1 val2 val3) # initialize with values
arr[0]=value # assign element

Access Elements

${arr[0]} # first element
${arr[-1]} # last element
${arr[@]} # all elements
${arr[*]} # all elements as string

Array Length

${#arr[@]} # number of elements
${#arr[0]} # length of first element

Array Slicing

${arr[@]:2:3} # 3 elements starting from index 2

Add Elements

arr+=(val) # append element
arr=(${arr[@]} val) # append element (alt)

Remove Elements

unset arr[1] # remove element at index 1
unset arr # remove entire array

Iterate Array

for item in ${arr[@]}; do
  echo $item
done

# With index:
for i in ${!arr[@]}; do
  echo ${arr[$i]}
done