shell中的数组

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