且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

shell数组的用法

更新时间:2022-09-23 13:03:40

变量:存储单个元素的内存空间:
数组(多个连续的内存空间):存储多个元素的连续的内存空间:

数组名:
  索引:编号从0开始,属于数值索引;
  注意:索引也可支持使用自定义的格式,而不仅仅是数值格式:
  bash的数组支持稀疏格式
  引用数组中元素:${ARRAY_NAME[INDEX]}

声明数组:
  declare -a ARRAY_NAME
  declare -A ARRAY_NAME:关联数组:kv

数组元素的赋值:
  (1)一次只赋值一个元素:
     ARRAY_NAME[INDEX]=VALUE
     #weekdays[0]=”Sunday”
     #weekdays[4]=”Thursday”

  (2)一次赋值全部元素:
     ARRAY_NAME=(“VAL1”,”VAL2”,”VAL3”,...)
  (3)只赋值特定元素:
     ARRAY_NAME=([0]=”VAL1” [3]=”VAL2” ...)
  (4)read -a ARRAY

引用数组中的某个元素:

  ${ARRAY_NAME[INDEX]}
  注意:省略[INDEX]表示引用下标为0的元素

显示数组中所有元素:

  ${ARRAY_NAME[*]},或者${ARRAY_NAME[@]}

统计数组的长度(数组中元素的个数):
  ${#ARRAY_NAME[*]},${#ARRAY_NAME[@]}

引用数组中的元素:
  依次取出数组中所有元素:${ARRAY[@]}或者${ARRAY[*]}

数组切片:

  取出数组中指定长度的元素:${ARRAY[@]:offset:number}:也叫做数组切片
  offset:要跳过的元素个数
  number:要取出的元素个数
  例 :#echo ${weekdays[@]:1:2}
  

  取出偏移量之后的所有元素:${ARRAY[@]:offset}
  #echo ${weekdays[@]:1}
向数组中追加元素:
  ARRAY[${#ARRAY[*]}]
删除数组中的某元素:
  unset ARRAY[INDEX]
关联数组:
  declare -A ARRAY_NAME
  ARRAY_NAME=([index_name]=’val1’ [index_name2=’val2’ ...])

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1927663如需转载请自行联系原作者


weilovepan520