- 数组的定义
array=(v1 v2 v3)
array1[0]=v1
array1[1]=v2
array1[2]=v3
names=([0]=i [1]=f [2]=a [3]=n)
- 获取数组的长度
echo ${#array[*]}
echo ${#array[@]}
# 数组的索引
echo ${!array[@]}
- 数组元素删除
unset array[2]
- 数组的遍历
# 使用索引遍历
for((i=0;i<${#array[*]};i++))
do
echo ${array[$i]}
done
# 直接遍历
for i in ${array[@]}
do
echo $i
done
- 数组切片
$array
$(array[0])
${array[@]}
${array[@]:1} # 从索引1到后面所有的值
${array[@]:0:3} # 从索引0取3位
${array[@]:(-2):2} # 从倒数第二个元素开始取两位
- 数组替换
${array[@]/x/y} # 最小匹配替换,每个元素只替换一次
${array[@]//x/y} # 最大匹配替换,每个元素可替换多次
${array[@]/x/} # 最小匹配删除,只删除一个符合规定的元素
${array[@]//x/} # 最大匹配删除,可删除多个符合规定的元素
${array[@]/#x/y} # 从左往右匹配替换,只替换每个元素最左边的字符
${array[@]/%x/y} # 从右往左匹配替换,只替换每个元素最右边的字符
- 堆栈
# push
array=(${array[@]} 5)
# pop
array=(${array[@]:0:$((${#array[@]}-1))})