数组
- 数值分为普通数组和关联数组
- 创建:str_arr=(ad df fd gf fd)/declare -A str_arr=([name]=“test” [sex]=“male”)
- 取值:${str_arr[n]}
- 获取数组中的所有元素:${str_arr[*/@]}
- 获取数组中元素的总数:${#str_arr[@/*]}
- 删除数组或数组中某元素unset str_arr,unset str_arr[n]
- 数组拼接:array_new=(${str_arr[@]} ${str_arr[*]})
- 数组截取(切片)
- 获取数组的索引${!str_arr[@]}
数组遍历
- 方式一
#${!array[@]}:获取数组的索引 arr_file="/root/shellstu/arra.txt" while read line do array[i++]=$line done < $arr_file for i in ${!array[@]} do echo "$i :${array[$i]}" done
- 方式二
#IFS=' #'或者IFS='\n':重新定义分割符,使用完后复原 LD_IFS=$IFS IFS=' ' for line in `cat $arr_file` do array[i++]=$line done for i in ${!array[@]} do echo "$i :${array[$i]}" done IFS=$OLD_IFS
):${str_arr:0:1}-> ad
关联数组
- 创建:declare -A info=([name]=name [sex]=sex)
- 取值:${str_arr[index]}
- 获取数组中的所有元素:${str_arr[*/@]}
- 获取数组中元素的总数:${#str_arr[*/@]}
- 删除数组或数组中某元素unset str_arr,unset str_arr[n]
- 数组拼接:array_new=(${str_arr[@]} ${str_arr[*]})