小试牛刀-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
对于普通数组也可以用这种方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】