Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数算术表达式,其值应大于或等于0。

定义数组

在Shell中,用括号()来表示数组,数组元素用空格符号分割开。定义数组的一般形式为:

array_name=(value1 … valuen)

例如:

array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)

还可以单独定义数组的各个分量:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

可以不使用连续的下标,而且下标的范围没有限制。

读取数组

读取数组元素值的一般格式是:

${array_name[index]}

例如:

valuen=${array_name[2]}
举个例子:

#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"运行脚本,输出:
$./test.sh
First Index: Zara
Second Index: Qadir

使用@* 可以获取数组中的所有元素,例如:

${array_name[*]}
${array_name[@]}

举个例子:

#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"
运行脚本,输出:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

Shell基础教程八: Shell数组:shell数组的定义、数组长度相关推荐

  1. Xamarin.FormsShell基础教程(9)Shell相关类体系

    Xamarin.FormsShell基础教程(9)Shell相关类体系 在Shell中,最为主要的类是Shell类.Shell类实现了大多数应用程序所需的基本UI功能的页面.除此以外,常用的类还有Sh ...

  2. Xamarin.FormsShell基础教程(8)Shell的模版构成

    Xamarin.FormsShell基础教程(8)Shell的模版构成 Shell模版创建的页面包含内容页.标签栏.侧滑菜单.搜索框四部分.下面依次介绍这几个部分. 内容页:内容页就是为用户呈现内容的 ...

  3. Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍

    Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍 轻拍标签栏中的About标签,进入关于页面,如图1.8和图1.9所示.它是对应用程序介绍的页面. 该页面源自Views文 ...

  4. Xamarin.FormsShell基础教程(6)Shell项目内容详情页面

    Xamarin.FormsShell基础教程(6)Shell项目内容详情页面 轻拍内容列表页面中的任意一项内容后,进入内容详情页面,如图1.6和图1.7所示.该页面中显示了内容项的标题和具体内容.该页 ...

  5. Xamarin.FormsShell基础教程(5)Shell项目内容新建页面

    Xamarin.FormsShell基础教程(5)Shell项目内容新建页面 轻拍内容列表页面中的Add按钮后,进入内容新建页面,如图1.4和图1.5所示.在该页面中,用户可以设置新建内容的标题和具体 ...

  6. Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果

    Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果 在创建好Shell解决方案后,就可以运行程序了.本小节将讲解运行后的效果. 内容列表页面 运行程序,初始效果如图1 ...

  7. Xamarin.FormsShell基础教程(3)Shell项目构成

    Xamarin.FormsShell基础教程(3)Shell项目构成 在创建的ShellDemo解决方案中,有3个子项目,分别为ShellDemo.ShellDemo.Android和ShellDem ...

  8. Xamarin.Forms Shell基础教程(1)

    Xamarin.Forms Shell基础教程(1) 什么是Xamarin.Forms Shell Shell是Visual Studio为Xamarin Forms提供的解决方案模版.本质上,She ...

  9. (转)jquery基础教程八 load方法及小技巧

    首先我们看看手册上的描述 load(url, params, callback) 装入一个远程HTML内容到一个DOM结点. 注意:避免用装入的scripts脚本,装入脚本改用$.getScript. ...

最新文章

  1. Windows Vista和XP系统功能大比拼
  2. windows 7 64bit安装apche php
  3. linux相等路径,关于linux:如何检查Bash中两条路径是否相等?
  4. linux内核ufs设备树,Linux内核初始化流程笔记
  5. Redis 多线程网络模型
  6. java 解析二进制_Java二进制指令代码解析
  7. 《深度学习》李宏毅 -- task4深度学习介绍和反向传播机制
  8. 交叉熵和极大似然估计的再理解
  9. 四、 vSphere 6.7 U1(四):部署VCSA
  10. 萤石摄像头实现web端监控预览以及录像回放
  11. win10 休眠不读u盘_如何解决win10识别不了U盘问题
  12. b类 蚂蚁金服_蚂蚁金服开放平台 - 文档中心
  13. dpdk bond口学习笔记
  14. UEditor自定义表情包
  15. HDUOJ 6806 Equal Sentences
  16. Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
  17. 无缘中兴(拒绝了offer)
  18. 车载行车记录仪EMC浪涌防护方案图
  19. 【分享】unlock music解锁音乐项目CLI版本
  20. [转]Anders Hejlsberg谈C#、Java和C++中的泛型

热门文章

  1. Unity 制作汽车后视镜
  2. Oracle数据库备份报错12514,Oracle 数据库报错 ORA-12514解决办法
  3. java基础大全app,中国大学MOOC的APP2020年零基础学Java语言期末考试大全答案
  4. usb右下角有显示,计算机没显示,插入U盘后电脑桌面右下角的系统任务栏不显示USB图标...
  5. k8s安装elasticSearch(简易版)
  6. 律师点评——员工因“对公司的赞美不合格”被淘汰
  7. SpringBoot中事务执行原理分析(一)
  8. 金赢客政策!详解模式2.0现代金控
  9. 冯诺依曼机器人_舍弃冯诺依曼架构突破内存墙瓶颈的AI芯片,即将轰动市场?...
  10. 泄露、勒索、入侵……金融科技的安全问题到底多可怕?