day15 数组

数组

1、什么是数组?

什么是数组?
   具备某种相同属性的数据集合
    [root@localhost ~]# array_name=(ddd)
    [root@localhost ~]# declare -a

2、为什么要用数组?

为什么要用数组?
		1)、方便查找
		2)、方便有序的存放

3、普通数组的定义

普通数组的定义
    在linux中,数组分为:普通数组(列表)和关联数组(字典)

    普通数组的下标必须是整数
    关联数组的下标可以是字符

    数组的下标是从0开始的

    	[root@localhost ~]# declare -a 	:查看普通数组


    1)、直接定义

    	[root@localhost ~]# array=(meng 18 male)

    2)、指定下标的方式定义

    	[root@localhost ~]# array1=([1]=17 [0]=nilai [2]=womale)

    3)、依次赋值

        [root@localhost ~]# array2=()
        [root@localhost ~]# array2[0]=tiecui
        [root@localhost ~]# array2[1]=19
        [root@localhost ~]# array2[2]=male

    4)、使用命令

    	[root@localhost ~]# array3=(`ls /root`)

4、访问数组

访问数组
    读数组中的值。

    1)、使用变量的方式取值
        [root@localhost ~]# echo $array3         # 取到第一个值
        1.txt

    2)、使用下标的方式取值
    	[root@localhost ~]# echo ${array3[1]}   # 加上大括号代表一个整体

    3)、反向取值法
    	[root@localhost ~]# echo ${array3[-1]}  # 也可以反向取值

    	注:正向取值,下标从0开始;反向取值,下标从-1开始。

    4)、一次取出所有的值
    	[root@localhost ~]# echo ${array3[*]}   # *代表所有

5、添加数组元素

添加数组元素
    [root@localhost ~]# array3[1]=mnnfnf

    注:添加元素,如果添加的下标不存在即为添加数据,如果下标已经存在则为修改数据。

6、删除数组元素

删除数组元素
    知识储备:
    	unset [变量名]  : 删除变量

    1)、删除特定某一个数据
        [root@localhost ~]# unset array3[3]
        [root@localhost ~]# echo ${array3[3]}

    2)、删除所有的数据
    	[root@localhost ~]# unset array3

7、关联数组

关联数组
	[root@localhost ~]# declare -A array3=()     # 声明数组

8、遍历数组

遍历数组
    for (第一种方式)
    	格式:
            for 变量 in 数组
            do		# for循环开始

    		echo $变量	# for循环体

    		done	# for循环结束
    		
    第二种:for 变量 in 数组 ; do for循环体1; for循环体2; for循环体3 ; done
    作用:
        1、作用是遍历数组,对数组中的所有元素进行处理
        2、将数组中存储的元素取出来使用(计算,做特殊处理)

    案例:循环出数组
    第一种方法:
        [root@localhost ~]# for i in ${array[*]}
        > do
        > echo $i
        > done
        
	第二种方法:
        [root@localhost ~]# for i in ${array[*]}; do echo $i;echo "meng";done
        
        [root@localhost ~]# for i in ${array[*]}; do echo "数组值:" $i;done    # 做了格式化了