以下是输出,
[root@localhost ~]# ./arraymain.sh
Suse Fedora
上面的示例返回第三、第四个索引的值。索引始终以零开头。
7.对于数组的特定元素,使用offset和length提取
从数组元素中仅提取前四个元素。例如,获取数组中的第二个元素,并且获取这个元素的前三个字符:
[root@localhost ~]# cat arraymain.sh
以下是输出:
[root@localhost ~]# ./arraymain.sh
Red
8.搜索并替换数组元素
下面的示例在数组中搜索Ubuntu,并将其替换为单词“FreeBSD”。
[root@localhost ~]# cat arraymain.sh
#! /bin/bash
Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')
echo ${Unix[@]/Ubuntu/FreeBSD}
以下是输出:
[root@localhost ~]# ./arraymain.sh
Debian Red hat FreeBSD Suse Fedora UTS OpenLinux
[root@localhost ~]#
注意,该数组替换,不会写入到数组里面。
9.向现有的数组添加元素
以下示例显示了将元素添加到现有数组的方法。
[root@localhost ~]# cat arraymain.sh
#! /bin/bash
Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')
Unix=("${Unix[@]}" "AIX" "HP-UX")
echo ${Unix[@]}
以下是输出:
[root@localhost ~]# ./arraymain.sh
Debian Red hat Ubuntu Suse Fedora UTS OpenLinux AIX HP-UX
在名为Unix的数组中,元素“ AIX”和“ HP-UX”分别添加在第7个索引和第8个索引中。并输出所有数组元素。
10.从数组中删除一个元素
unset用于从数组中删除元素。unset和分配给元素“Null"值具有相同的效果。
[root@localhost ~]# cat arraymain.sh
#! /bin/bash
Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')
unset Unix[1]
echo ${Unix[@]}
echo ${Unix[1]}
以下为输出:
[root@localhost ~]# ./arraymain.sh
Debian Ubuntu Suse Fedora UTS OpenLinux
上面的脚本将打印整个数组,还有索引为"1"的值,索引为“1”的值是null。
以下示例显示了从数组中完全删除元素的一种方法,下面还是删除索引为1的元素。
[root@localhost ~]# cat arraymain.sh
#! /bin/bash
Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux')
pos=1
Unix=(${Unix[@]:0:$pos} ${Unix[@]:$(($pos + 1))})
echo ${Unix[@]}