Linux Shell数组常用操作详解
1数组定义:
declare -a 数组名
数组名=(元素1 元素2 元素3 )
1 declare -a array 2 array=(1 2 3 4 5)
数组用小括号括起,数组元素之间用空格分开
2显示数组长度:
[@tc_132_227 dm_pid_day]$ echo ${#array[@]} 5 [@tc_132_227 dm_pid_day]$ echo ${#array[*]} 5
命令:
${#数组名[@或*]} 获取数组长度,若数组无元素,输出空
3读取数组元素:
[@tc_132_227 dm_pid_day]$ echo ${array[0]} 1 [@tc_132_227 dm_pid_day]$ echo ${array[1]} 2 [@tc_132_227 dm_pid_day]$ echo ${array[4]} 5 [@tc_132_227 dm_pid_day]$ echo ${array[*]} 1 2 3 4 5 [@tc_132_227 dm_pid_day]$ echo ${array[@]} 1 2 3 4 5
命令:
${数组名[下标]},数组下标从0开始,且下标为*或者@符号时,读取整个数组元素
4 对数组元素赋值:
[@tc_132_227 dm_pid_day]$ echo ${array[@]} 1 2 3 4 5 [@tc_132_227 dm_pid_day]$ array[1]=9 [@tc_132_227 dm_pid_day]$ echo ${array[@]} 1 9 3 4 5 [@tc_132_227 dm_pid_day]$ array[8]=7 [@tc_132_227 dm_pid_day]$ echo ${array[@]} 1 9 3 4 5 7 [@tc_132_227 dm_pid_day]$
命令:
数组名[下标]=元素 进行赋值 若下标不存在,则数组会自动增加一个新的元素
5删除数组元素:
[@tc_132_227 dm_pid_day]$ unset array[0] [@tc_132_227 dm_pid_day]$ echo ${array[@]} 2 3 4 5 [@tc_132_227 dm_pid_day]$ echo ${#array[*]} 4 [@tc_132_227 dm_pid_day]$ unset array[1] [@tc_132_227 dm_pid_day]$ echo ${array[*]} 3 4 5 [@tc_132_227 dm_pid_day]$ echo ${#array[*]} 3 [@tc_132_227 dm_pid_day]$ unset array [@tc_132_227 dm_pid_day]$ echo ${array[*]} [@tc_132_227 dm_pid_day]$
命令:
unset 数组名[下标]可以删除数组元素, unset 数组名 删除整个数组
6数组分片:
[@tc_132_227 dm_pid_day]$ echo ${array[@]} 1 2 3 4 5 [@tc_132_227 dm_pid_day]$ echo ${array[@]:0:1} 1 [@tc_132_227 dm_pid_day]$ echo ${array[@]:1:1} 2 [@tc_132_227 dm_pid_day]$ echo ${array[@]:1:3} 2 3 4
[@tc_132_227 dm_pid_day]$ arr=(${array[@]:1:3}) [@tc_132_227 dm_pid_day]$ echo ${arr[@]} 2 3 4 [@tc_132_227 dm_pid_day]$ echo ${#arr[@]} 3 [@tc_132_227 dm_pid_day]$
命令:
${数组名[@|*]:起始下标:长度} 会将原数组分片,并返回以“空格”为分隔符的一个字符串,若对该字符串外加"()“,则会得到一个新的分片数组