1.数组的定义方法
方法一:[root@localhost ~]# array=(a b ca)
[root@localhost ~]# echo ${array[*]}
a b ca
方法二:
[root@localhost ~]# array=([0]=zero [1]=one [2]=two [3]=three)
[root@localhost ~]# echo ${array[*]}
zero one two three
方法三:
[root@localhost ~]# array[0]=a
[root@localhost ~]# array[1]=a
[root@localhost ~]# array[2]=a
[root@localhost ~]# echo ${array[*]}
a a a three
方法四:动态定义数组变量,并使用命令的输出结果作为数组的内容
[root@localhost mnt]# ls
database student
[root@localhost mnt]# cd
[root@localhost ~]# array=($(ls /mnt))
[root@localhost ~]# echo ${array[*]}
database student
2.数组的打印和输出
打印数组元素[root@localhost ~]# array=(0 1 2)
[root@localhost ~]# echo ${array[0]}
0
[root@localhost ~]# echo ${array[1]}
1
[root@localhost ~]# echo ${array[*]}
0 1 2
[root@localhost ~]# echo ${array[@]}
0 1 2
打印元素个数
[root@localhost ~]# echo ${#array[@]}
3
[root@localhost ~]# echo ${#array[*]}
3
数组的赋值
如果下标不存在,则自动添加一个新的元素,如果存在,则覆盖原来的值
[root@localhost ~]# echo ${array[@]}
0 1 2
[root@localhost ~]# array[3]=aa
[root@localhost ~]# echo ${array[@]}
0 1 2 aa
[root@localhost ~]# array[0]=aa
[root@localhost ~]# echo ${array[@]}
aa 1 2 aa
数组的删除
[root@localhost ~]# echo ${array[@]}
aa 1 2 aa
[root@localhost ~]# unset array[0]
[root@localhost ~]# echo ${array[@]}
1 2 aa
数组内容截取和替换
[root@localhost ~]# array=(0 1 2 3 4)
[root@localhost ~]# echo ${array[@]:1:3}
1 2 3
[root@localhost ~]# echo ${array[@]:0:3}
0 1 2
[root@localhost ~]# array=($(echo {a..z}))
[root@localhost ~]# echo ${array[@]}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost ~]# echo ${array[@]:6:3}
g h i
[root@localhost ~]# array=(a 2 4 a 6)
[root@localhost ~]# echo ${array[@]/a/0}
0 2 4 0 6
练习:利用for循环打印下面这句话中字母个数小于于6的单词
I am westos teacher welcome to westos training class
#!/bin/bash
arr=(I am westos teacher welcome to westos training class)
for ((i=0;i<${#arr[*]};i++))
do
if [ ${#arr[$i]} -lt 6 ];
then
echo "${arr[$i]}"
fi
done
练习:循环输出数组元素
#!/bin/bash
arr=(a b c d e)
for ((i=0;i<${#arr[*]};i++))
do
echo ${arr[i]}
done