Array Operation
Basic
# Initialarr=(Hello World)# Printecho ${arr[0]} ${arr[1]}# Assignarr[0]=Helloarr[1]=World# Append# Notice: arr+="Hello" is wrongarr+=("Hello")arr+=("World")
Iteration
${arr[*]} # All of the items in the array ${!arr[*]} # All of the indexes in the array ${#arr[*]} # Number of items in the array ${#arr[0]} # Length of item zero
Basic Examples
#!/bin/basharray=(one two three four [5]=five)echo "Array size: ${#array[*]}"# --------# Array size: 5# --------echo "Array items:"for item in ${array[*]}do printf " %s\n" $itemdone# --------# Array items:# one# two# three# four# five# --------echo "Array indexes:"for index in ${!array[*]}do printf " %d\n" $indexdone# --------# Array indexes:# 0# 1# 2# 3# 5# --------echo "Array items and indexes:"for index in ${!array[*]}do printf "%4d: %s\n" $index ${array[$index]}done# --------# Array items and indexes:# 0: one# 1: two# 2: three# 3: four# 5: five# --------
Advanced Examples
#!/bin/basharray=("first item" "second item" "third" "item")echo "Number of items in original array: ${#array[*]}"for ix in ${!array[*]}do printf " %s\n" "${array[$ix]}"doneecho# --------# Number of items in original array: 4# first item# second item# third# item# --------arr=(${array[*]})echo "After unquoted expansion: ${#arr[*]}"for ix in ${!arr[*]}do printf " %s\n" "${arr[$ix]}"doneecho# --------# After unquoted expansion: 6# first# item# second# item# third# item# --------arr=("${array[*]}")echo "After * quoted expansion: ${#arr[*]}"for ix in ${!arr[*]}do printf " %s\n" "${arr[$ix]}"doneecho# --------# After * quoted expansion: 1# first item second item third item# --------arr=("${array[@]}")echo "After @ quoted expansion: ${#arr[*]}"for ix in ${!arr[*]}do printf " %s\n" "${arr[$ix]}"done# --------# After @ quoted expansion: 4# first item# second item# third# item# --------