小试牛刀-1.7

数组是shell脚本非常重要的组成部分,它借助索引将多个独立的数据存储为一个集合。

普通数组只能使用整数作为数组索引。

bash也支持关联数组,它可以使用字符串作为数组索引。

1)定义数组的方法有多种:可以在单行中使用一列值来定义一个数组:

如,array_var=(1 2 3 4 5 6);这些值将会存储在以0起始索引的连续位置上。

还可以定义如下:

array_var[0]="test1"

array_var[1]="test2"

array_var[2]="test3"

array_var[3]="test4"

2)打印出特定索引的数组元素内容

echo ${array_var[0]}

test1

index=3

echo ${array_var[$index]}

test4

3)以清单形式打印出数组中的所有值

$echo ${array_var[*]}

test1 test2 test3 test4

4)打印数组长度

echo ${#array_var[*]}

补充内容

关联数组是借助散列技术

1)定义关联数组

在关联数组中,可以使用任意的文本作为数组索引;使用声明语句将一个变量声明为关联数组:declare -A ass_array

有两种方法将元素添加到关联数组中

a、利用内嵌"索引-值"列表的方法,提供一个“索引-值”列表:

ass_array=([index1]=val1 [index2]=val2)

b、使用独立的“索引-值”进行赋值

ass_array[index1]=val1

ass_array[index2]=val2

使用关联数组对水果制定价格

declare -A fruits_value

fruits_value=([apple]='100 dollars' [orange]='150 dollars')

显示数组内容:

echo "Apple costs ${fruits_value[apple]}"

Apple consts 100 dollars

2)列出数组索引列表

echo ${!array_var[*]}

也可以使用

echo ${!array_var[@]}

eg:echo ${!fruits_value[*]}

orange apple

对于普通数组也可以用这种方式。

 

posted on   gary_123  阅读(283)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示