Shell编程基础(九)数组

数组

    • 定义
    • 创建数组
      • 定义普通数组
      • 定义关联数组
      • 操作数组

定义

同其他编程语言一样,数组用于保存多个数据
将之前的多个变量放到一个数组中
数组根据索引的不同可以分为 普通数组 和 关联数组
所谓关联数组,就是索引可以自定义;普通的数组索引只能一个一个按数字递增

创建数组

定义普通数组

arr=(1 2 3)

数据项通过 空格 隔开,而不是习以为常的逗号
还可以手动指定索引及对应的值

arr=([0]= [1]=2 [2]=3)

这两种方式还可以混合使用

arr=(1 2 3 [4]=9 4)

但是要特别注意,[0] 的方式优先级高于直接写值方式 而且跟在[index] 后面的直接定义的值会基于前面的 index 递增再次设值,如果 index 超过了当前数组大小,则中间那些索引都是空的

定义关联数组

定义关联数组,需要先声明,再赋值

declare -A arr
arr=([zhangsan]=10 [lisi]=15 [wangwu]=9)

操作数组

  • 查看指定索引的值
echo ${arr[index]}
  • 查看所有值
echo ${arr[@]} 或者 arr[*]
  • 查看所有索引
echo ${!arr[@]} 或者 arr[*]
  • 查看数组长度
echo ${#arr[@]} 或者 arr[*]
  • 查看所有已定义的数组
declard -a
  • 截取数组
    arr[@] : 开始截取的索引 : 向后截取的个数
    未指定个数时,取后面所有元素
echo ${arr[@] : 0 : 2}
  • 移除数组定义(和其他变量一样)
unset arr
  • 移除数组某一项
unset arr[index]

你可能感兴趣的:(Linux,shell)