一、数组定义方法:
方法1: [root@localhost ~]# array=(1 2 3) [root@localhost ~]# echo ${array[*]} 1 2 3 方法2: [root@localhost ~]# array=([1]=one [2]=two [3]=three) [root@localhost ~]# echo ${array[*]} one two three 方法3: [root@localhost ~]# array[0]=a [root@localhost ~]# array[1]=b [root@localhost ~]# array[2]=c [root@localhost ~]# [root@localhost ~]# echo ${array[1]} b 方法4:动态定义数组变量,并使用命令的输出结果作为数组的内容 [root@localhost ~]# array=($(ls /array)) [root@localhost ~]# echo ${array[*]} 1.txt 2.txt 3.txt1)打印数组元素
[root@localhost ~]# array=(one two three) [root@localhost ~]# echo ${array[0]} one [root@localhost ~]# echo ${array[1]} two [root@localhost ~]# echo ${array[*]} one two three [root@localhost ~]# echo ${array[@]} one two three2)打印元素个数
[root@localhost ~]# echo ${#array[*]} 3 [root@localhost ~]# echo ${#array[@]} 33)数组的赋值
如果下标不存在,则自动添加一个新的元素,如果存在,则覆盖原来的值
[root@localhost ~]# array[3]=four [root@localhost ~]# echo ${array[*]} one two three four [root@localhost ~]# [root@localhost ~]# array[0]=westos [root@localhost ~]# [root@localhost ~]# echo ${array[*]} westos two three four4)数组的删除
[root@localhost ~]# unset array[1] [root@localhost ~]# echo ${array[*]} westos three four [root@localhost ~]# unset array5)数组内容截取和替换
[root@localhost ~]# echo ${array[@]:1:3} 2 3 4 [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 ~]# [root@localhost ~]# echo ${array[@]:1:3} b c d 替换 [root@localhost ~]# array=(1 2 3 1 1) [root@localhost ~]# [root@localhost ~]# echo ${array[@]/1/b} b 2 3 b bI am westos teacher welcome to westos training class
[root@server tmp]# cat shuzu.sh #!/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 [root@server tmp]# sh shuzu.sh I am to class