一.数组的定义(数组从0开始,表示第一个元素)
1)
[root@foundation77 mnt]# array=(1 2 4)
[root@foundation77 mnt]# echo ${array[*]}
1 2 4
[root@foundation77 mnt]#
2)
[root@foundation77 mnt]# array=([1]=one [2]=two [3]=three)
[root@foundation77 mnt]# echo ${array[2]}
two
3)
[root@foundation77 mnt]# array[0]=1
[root@foundation77 mnt]# array[1]=q
[root@foundation77 mnt]# array[2]=w
[root@foundation77 mnt]# echo ${array[*]}
1 q w
4)动态定义数组变量,使用命令作为数组内容
[root@foundation77 mnt]# array=($(ls ))
[root@foundation77 mnt]# echo ${array[*]}
cos file fun.sh passwd qoq.sh rhel-server-7.2-x86_64-dvd.iso sos.sh test.sh
[root@foundation77 mnt]# echo ${array[2]}
fun.sh
2.数组的输出
打印某个元素
echo ${array[2]} 输出第二个元素
打印所有元素个数
[root@foundation77 mnt]# echo ${#array[*]}
8
[root@foundation77 mnt]# echo ${#array[@]}
8
打印所有元素不加 #
3.数组的赋值
如果下标不存在,则自动添加一个新的元素,如果存在,则覆盖原来的值
[root@foundation77 mnt]# array=([1]=one [2]=two [3]=three)
[root@foundation77 mnt]# echo ${array[@]}
one two three
[root@foundation77 mnt]# array[4]=linux
[root@foundation77 mnt]# echo ${array[@]}
one two three linux
4.数组的删除
删除某个元素
[root@foundation77 mnt]# echo ${array[@]}
one two three linux
[root@foundation77 mnt]# unset array[1]
[root@foundation77 mnt]# echo ${array[@]}
two three linux
删除所有元素
[root@foundation77 mnt]# echo ${array[@]}
two three linux
[root@foundation77 mnt]# unset array
[root@foundation77 mnt]# echo ${array[@]}
[root@foundation77 mnt]#
5.数组的截取
[root@foundation77 mnt]# array={1..10}
[root@foundation77 mnt]# echo ${array[@]}
{1..10} 2 3 4 5 6 7 8 9
[root@foundation77 mnt]# echo ${array[@]:1:5}
2 3 4 5 6
6.数组的替换
[root@foundation77 mnt]# array={1..10}
[root@foundation77 mnt]# echo ${array[@]/8/g}
{1..10} 2 3 4 5 6 7 g 9
7.编辑脚本找出单词字母个数小于6的单词
#!/bin/bash
array=(I am westos teacher welcome to westos training class)
for ((i=0;i<${#array[*]};i++))
do
if [ ${#array[$i]} -lt 6 ];then #$i表示第几个元素,#表示元素字母数
echo "${array[$i]}"
fi
done
~