Shell数组

Shell数组

Shell的数组和其他语言不同 ,Shell数组只支持一维数组,并且不用限定数组大小。Shell数组和众多语言一样,数组的下标都是从0开始的。

定义数组

数组的定义在Shell中非常简单,常见的定义方式为以()来表示数组,数组元素之间需要用空格分割。

例如:

arrs=(one two three four five)

当然,你可以可以多行定义方式来书写,如:

arrs=(
one
two
three
four
five
) 

你也可以指定下标的方式来定义数组,如:

arrs[0]=one
arrs[1]=two
arrs[2]=three
arrs[3]=four
arrs[4]=five

这里的下标数你可以任意指定,范围没有限制,而且下标并不是必须连续。

读取数组

读取数组中的某一个元素,常用方式如下:

${array_name[index]}

例如:

value=${arrs[2]}

这时候如果我们通过echo 输出value值,我们可以看到如下效果:

echo $value
three

这个脚本如下:

#!/bin/bash
arrs=(one two three four five)
value=arrs[2]
echo $value

以上内容我们保存为array_test.sh脚本,然后我们在终端中运行它。

$ chmod +x array_test.sh
$ ./array_test.sh

输出结果就会如下:

three

如果要将数组中的元素全部输出,我们这时候可以使用特殊符号*@

echo $arrs[*]
echo $arrs[@]

它们都将输出如下结果:

one two three four five

获取数组长度

使用数组时我们常常需要获取数组长度,我们可以通过以下方式在Shell中获取数组长度。

len=${#arrs}
len=${#arrs[*]}
len=${#arrs[@]}

我们注意到,在Shell中获取数组长度上,需要使用#符号放在数组名称之前。

在Shell中如何获取数组整个长度我们已经知道,那么如何获取具体元素的长度呢,看下面的介绍。

len=${#arrs[n]}

这里的n表示具体下标的数字,如果你要获取数组中下标为2的数组长度,那么Shell语句就如下所示:

len=${#arrs[2]}

删除数组中的元素

在Shell中删除原属我们可以通过unset进行删除,具体格式如下:

unset arrs[n]

其中的n就是数组元素的下标,可以根据要删除的数组元素填写下标。

如果我们要删除整个数组也可以通过unset来进行删除,具体方式如下:

unset arrs

以上的语句执行后,arrs整个数组的元素将会被删除。

拼接数组

不同的数组如果要组合成一个数组,我们可以通过Shell的数组拼接将两个数组拼接到一起。拼接的方法是我们首先使用@*来获取数组的全部元素,然后通过Shell数组定义的方式将两个数组拼接到一起,示例如下:

#!/bin/bash

arr1=(1 2 3 4 5 qq)
arr2=(6 7 8 9 10 wechat)

arr3=(${arr1[@]} ${arr2[@]})

echo ${arr3[@]}

输出结果:

1 2 3 4 5 qq 6 7 8 9 10 wechat

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59235.html

(0)
上一篇 2021年8月9日
下一篇 2021年8月9日

相关推荐

发表回复

登录后才能评论