#!/bin/basharr[0]=linuxarr[1]=redisarr[2]=mysqlarr[@] 遍历所有的值arr[*] 遍历所有的值${!arr[@]} 返回值的数组下标#数组赋值array=([0]=linux [1]=shell [2]=mysql [3]=kvm)array=(linux shell mysql kvm)#未定义的变量,最后都是赋值为0array[index1]=mysqlarray[index2]=redisecho array #-->>输出的是redis因为无法识别index1,所以会覆盖真要使用上面的方法,则使用declare -A array进行关联数组array=([index1]=linux [index2]=shell [index3]=mysql [index4]=kvm)
案列1:循环ping ip
**
#!/bin/bashIP=(120.77.146.250120.77.146.251120.77.146.252)for i in ${IP[@]}doping -c 1 -W1 ${i}>/dev/null 2>&1[ $? -eq 0 ]&& echo "${i}可ping通"done
案列2:将数组下标自定义变量,获取其值
主要还是要关联数组,不然是不可以的
#!/bin/bashdeclare -A arraywhile read linedolet array[$line]++done<~/shell/set.txtfor i in ${!array[*]}doecho "$i 出现了 ${array[${i}]} 次"done
