欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

shell数组

程序员文章站 2022-06-18 15:36:25
shell数组 数组介绍 数组就是各种数据类型的元素按一定顺序排列的集合。 数组就是把有限个元素变量或数据用一个名字命名,然后用编号区分它们的变量的集合。这个名字称为数组名,编号称为数组下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 数组定义与增删改查 方法1:arr... ......

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是数组下标