1. #!/bin/bash
    2. arr[0]=linux
    3. arr[1]=redis
    4. arr[2]=mysql
    5. arr[@] 遍历所有的值
    6. arr[*] 遍历所有的值
    7. ${!arr[@]} 返回值的数组下标
    8. #数组赋值
    9. array=([0]=linux [1]=shell [2]=mysql [3]=kvm)
    10. array=(linux shell mysql kvm)
    11. #未定义的变量,最后都是赋值为0
    12. array[index1]=mysql
    13. array[index2]=redis
    14. echo array #-->>输出的是redis
    15. 因为无法识别index1,所以会覆盖
    16. 真要使用上面的方法,则使用declare -A array进行关联数组
    17. array=([index1]=linux [index2]=shell [index3]=mysql [index4]=kvm)

    案列1:循环ping ip
    **

    1. #!/bin/bash
    2. IP=(
    3. 120.77.146.250
    4. 120.77.146.251
    5. 120.77.146.252
    6. )
    7. for i in ${IP[@]}
    8. do
    9. ping -c 1 -W1 ${i}>/dev/null 2>&1
    10. [ $? -eq 0 ]&& echo "${i}可ping通"
    11. done

    案列2:将数组下标自定义变量,获取其值
    主要还是要关联数组,不然是不可以的

    1. #!/bin/bash
    2. declare -A array
    3. while read line
    4. do
    5. let array[$line]++
    6. done<~/shell/set.txt
    7. for i in ${!array[*]}
    8. do
    9. echo "$i 出现了 ${array[${i}]} 次"
    10. done