typora/note/Shell/数组.md
2024-12-12 10:48:55 +08:00

55 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 数组分类
- 普通数组:只能使用整数作为数组索引
- 关联数组:可以使用字符串作为数组索引
### 普通数组定义
- 一次赋予一个值
```
数组名[索引下标]=值
array[0]=v1
array[1]=v2
array[2]=v3
```
- 一次赋予多个值,元素之间用逗号隔开
```
数组名=(值1 值2 值3 值4)
array=(1 2 3 4)
array2=(`cat /etc/passwd`) # 文件中的每一行赋值给array有空格按照空格切分没有空格按照换行符切分
array3=(`ls /root`)
array4=(harry may jack "Miss You")
array5=(1 2 3 "hello world" [10]=linux)
```
### 数组值的读取
- ${数组名[元素下标]}
```
echo ${array[1]} 获取数组里指定元素
echo ${array[*]} 获取数组里所有元素
echo ${#array[*]} 获取数组元素个数,也就是数组长度
echo ${!array[@]} 获取数组的索引下标
echo ${!array[*]} 获取数组的索引下标
echo ${array[@]:1:2} 获取指定下表的元素1 代表从索引为 1 的元素开始2 代表获取后面的几个元素
echo ${array[*]:1:2} 同上
```
### 关联数组定义
- 先声明定义一个关联数组
```
declare -A asso_array1
```
- 数组单个赋值
```
asso_array1[linux]=one
asso_array1[java]=two
asso_array1[php]=three
```
- 数组一次多个赋值
```
asso_array1=([name1]=linux [name2]=jack [name3]=amy)
```