上一章Linux shell编程请查看:shell特殊变量介绍和使用
在本章中我们将讨论如何在Unix中使用shell数组。shell变量能够容纳单个值,些变量称为标量变量,shell支持另一种类型的变量称为数组变量。它可以同时保存多个值,数组提供了一种对一组变量进行分组的方法。
你可以使用存储所有其他变量的单个数组变量,而不是为每个需要的变量创建新名称,为Shell变量讨论的所有命名规则在命名数组时都是适用的。
1、定义数组数组变量和标量变量之间的区别可以解释如下:假设你试图将不同学生的名字表示为一组变量,每个单独的变量都是一个标量变量如下所示:
NAME01="AAA"
NAME02="BBB"
NAME03="CCC"
NAME04="DDD"
NAME05="EEE"
我们可以使用单个数组来存储上述所有名称,下面是创建数组变量的最简单方法,这有助于将一个值赋给它的一个索引。
array_name[index]=value
这里array_name是数组的名称,index是要设置的数组中项的索引,value是要为该项设置的值例如下面的命令:
NAME[0]="AAA"
NAME[1]="BBB"
NAME[2]="CCC"
NAME[3]="DDD"
NAME[4]="EEE"
如果你正在使用ksh shell,以下是数组初始化的语法:
set -A array_name value1 value2 ... valuen
如果你使用的是bash shell,以下是数组初始化的语法:
array_name=(value1 ... valuen)
2、访问数组元素设置任何数组变量之后,按如下方式访问它:
${array_name[index]}
这里array_name是数组的名称,index是要访问的值的索引。下面是一个理解这个概念的示例:
#!/bin/bash
my_arr=(AAA BBB CCC)
echo ${my_arr[0]}
echo ${my_arr[1]}
echo ${my_arr[2]}
你可以通过以下方式之一访问数组中的所有项:
${array_name[*]}
${array_name[@]}
这里,array_name是你自定义的数组的名称,下面的例子将帮助你理解这个概念:
#!/bin/bash
my_arr=(AAA BBB CCC)
echo ${my_arr[0]}
echo ${my_arr[1]}
echo ${my_arr[2]}
echo "----------"
echo ${my_arr[*]}
echo ${my_arr[@]}
3、获取数组长度【Linux shell编程(shell数组定义和操作详解)】获取数组长度的方法和获取字符串长度的方法是一样的,使用如下语法获取长度:
length=${#string_name}
length=${#array_name}
如下例子是获取字符串长度和数组:
#!/bin/bash
my_arr=(AAA BBB CCC)
echo ${my_arr[0]}
echo ${my_arr[1]}
str="once upon a time"
echo $str
echo "length of string: ${#str}"
echo "length of array: ${#my_arr}"
推荐阅读
- Linux shell编程(shell基本操作符和条件语句介绍和用法)
- Linux shell编程(shell特殊变量完全介绍和使用教程)
- Linux shell编程(基本shell变量的定义和使用介绍)
- Linux shell编程之(什么是shell(shell脚本介绍及其操作))
- Unix和Linux信号捕获处理介绍及其相关操作教程
- Unix和Linux系统日志介绍和详细操作教程
- 贝塞斯达戏弄“最大的发动机大修”,托德·霍华德(Todd Howard)变得非常糊涂
- 凯纳(Kena)幕后花絮(精神之桥的和谐合作)
- 赠品(复仇者联盟:无限战争蓝光[关闭])