shell脚本学习6——数组

原创 2016年08月30日 11:46:26
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

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

定义数组

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
    array_name=(value1 ... valuen)
例如:
  1. array_name=(value0 value1 value2 value3)
或者
  1. array_name=(
  2. value0
  3. value1
  4. value2
  5. value3
  6. )

还可以单独定义数组的各个分量:
  1. array_name[0]=value0
  2. array_name[1]=value1
  3. array_name[2]=value2
可以不使用连续的下标,而且下标的范围没有限制。

读取数组

读取数组元素值的一般格式是:
    ${array_name[index]}
例如:
  1. valuen=${array_name[2]}
举个例子:
  1. #!/bin/sh
  2. NAME[0]="Zara"
  3. NAME[1]="Qadir"
  4. NAME[2]="Mahnaz"
  5. NAME[3]="Ayan"
  6. NAME[4]="Daisy"
  7. echo "First Index: ${NAME[0]}"
  8. echo "Second Index: ${NAME[1]}"
运行脚本,输出:
$./test.sh
First Index: Zara
Second Index: Qadir
使用@ 或 * 可以获取数组中的所有元素,例如:
  1. ${array_name[*]}
  2. ${array_name[@]}
举个例子:
  1. #!/bin/sh
  2. NAME[0]="Zara"
  3. NAME[1]="Qadir"
  4. NAME[2]="Mahnaz"
  5. NAME[3]="Ayan"
  6. NAME[4]="Daisy"
  7. echo "First Method: ${NAME[*]}"
  8. echo "Second Method: ${NAME[@]}"
运行脚本,输出:
$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:
  1. # 取得数组元素的个数
  2. length=${#array_name[@]}
  3. # 或者
  4. length=${#array_name[*]}
  5. # 取得数组单个元素的长度
  6. lengthn=${#array_name[n]}

相关文章推荐

shell脚本学习 6 补充

缺省值(:-) 如果变量后面跟着冒号和减号,则变量后面跟着是这个变量的缺省值。 $ COMPANY= $ printf “%s/n” “${COMPANY:-Unknown Company}” ...

shell脚本中数组array常用技巧学习实践

shell中数组的下标默认是从0开始的 1。将字符串放在数组中,获取其长度 #!/bin/bash str="a b --n d" array=($str) length=${#array[...

树莓派学习笔记——Shell脚本操作GPIO

树莓树莓派可以无痛入门linux,下面通过命令和shell脚本控制树莓派GPIO。通过本文可以熟悉多个linux命令,并熟悉shell脚本编写方法,并对IO重定向有一个基本的体会。我在学习树莓派的过程...

Shell脚本学习第五天——算术运算符

我希望有个如你一般的人 如山间清爽的风 如古城温暖的光 从清晨到夜晚 由山野到书房 只要最后是你 就好                     ——张嘉佳 《从你的全世界路过》...

shell脚本学习第四天——bash内部变量,变量主串,变量替换

一、bash内部变量:常见的内部命令:echo,eval,exec,export,readonly,read,shift ,wait,exit和点(.)也就是source命令。 命令 作用 ...

【每天一点Linux】shell脚本学习之二——语法

上篇我们说了关于shell的脚本学习之一——符号 问题,有兴趣的同学可以去看看。今天我们来看看shell的语法问题。...

【每天一点Linux】shell脚本的学习之一——符号

在Linux中,shell的重要性不言而喻。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。当我们写一个shell脚本需要指明它在那种环境下进行编译。...

shell脚本学习第三天——特殊变量

一、位置变量:$0 获取当前执行脚本的文件名,包括脚本路径。 $n 获取当前执行脚本的第n个参数,1~9,大于9,用{}括起来,比如:${10}。 $# 表示参数个数seq 9|sed 's#[0...

Linux学习笔记(三)——Shell脚本基础总结

1.      vi编辑器快捷键备忘          [Ctrl]+[ud]         向上/下移动半页          n          右移n个字符          H/M/...
  • nevasun
  • nevasun
  • 2011年10月21日 17:40
  • 864

shell脚本学习11——输入输出重定向

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 输出重定向 命令的输出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell脚本学习6——数组
举报原因:
原因补充:

(最多只允许输入30个字)