shell数组

shell数组

数组介绍

数组就是各种数据类型的元素按一定顺序排列的集合。

数组就是把有限个元素变量或数据用一个名字命名,然后用编号区分它们的变量的集合。这个名字称为数组名,编号称为数组下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

数组定义与增删改查

方法1:array=(value1 value2 value3)

1)数组定义

  1. [root@lamp ~]# array=(1 2 3)

2)获取数组的长度

  1. [root@lamp ~]# echo ${#array[*]}
  2. 3
  3. [root@lamp ~]# echo ${#array[@]}
  4. 3

3)打印数组元素

  1. [root@lamp ~]# echo ${array[0]}
  2. 1

打印数组元素用${数组名[下标]},下标从0开始。

打印所有数组元素。

  1. [root@lamp ~]# echo ${array[*]}
  2. 1 2 3

 

  1. [root@lamp ~]# echo ${array[@]}
  2. 1 2 3

for循环打印数组。

  1. [root@lamp ~]# cat array.sh
  2. #!/bin/bash
  3. array=(
  4.   192.168.0.1
  5.   192.168.0.2
  6.   192.168.0.3
  7. )
  8. for((i=0;i<${#array[@]};i++))
  9. do
  10.   echo ${array[i]}
  11. done
  12.  
  13. echo "----------------"
  14.  
  15. for i in ${array[@]}
  16. do
  17.   echo $i
  18. done

4)数组赋值

  1. [root@lamp ~]# array=(1 2 3)
  2. [root@lamp ~]# echo ${array[@]}
  3. 1 2 3
  4. [root@lamp ~]# array[3]=4
  5. [root@lamp ~]# echo ${array[*]}
  6. 1 2 3 4

5)数组删除

  1. [root@lamp ~]# array=(1 2 3)
  2. [root@lamp ~]# unset array[0]
  3. [root@lamp ~]# echo ${array[@]}
  4. 2 3

6)数组内容的截取和替换

截取

  1. [root@lamp ~]# array=(1 2 3 4 5 6)
  2. 截取1号到3号数组元素
  3. [root@lamp ~]# echo ${array[@]:1:3}
  4. 2 3 4
  5. [root@lamp ~]# echo ${array[*]:3:2}
  6. 4 5

替换

  1. 把数组中的5替换成88,临时生效,原数组不变
  2. [root@lamp ~]# echo ${array[@]/5/88}
  3. 1 2 3 4 88 6

把系统命令结果作为数组元素。

  1. [root@lamp ~]# array=($(ls))

小结

1、定义

静态数组:array=(1 2 3)

动态数组:array=($(ls))

数组赋值:array[3]=4

2、打印

打印所有元素:${array[@]}或${array[*]}

打印数组长度:${#array[@]}或${array[*]}

打印单个元素:${array[i]},i是数组下标

 

posted on 2018-09-05 22:29  yinshoucheng  阅读(383)  评论(0编辑  收藏  举报

导航