shell--4、Shell 数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由0开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 ... valuen)

实例

#!/bin/bash
my_array=(A B "C" D)

我们也可以使用下标来定义数组:

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

读取数组

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

${array_name[index]}

实例

#!/bin/bash
my_array=(A B "C" D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"

执行脚本,输出结果如下所示:

$ chmod +x test.sh 
$ ./test.sh
第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D

获取数组中的所有元素

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

#!/bin/bash
my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

执行脚本,输出结果如下所示:

$ chmod +x test.sh 
$ ./test.sh
数组的元素为: A B C D
数组的元素为: A B C D

获取数组的长度

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

#!/bin/bash
my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

执行脚本,输出结果如下所示:

$ chmod +x test.sh 
$ ./test.sh
数组元素个数为: 4
数组元素个数为: 4
时间: 2024-10-29 10:46:49

shell--4、Shell 数组的相关文章

shell 函数 返回数组

shell 函数 返回数组,布布扣,bubuko.com

20.16 20.17shell中的函数(上下);20.18 shell中的数组;20.19 告警系统需求分析

20.16 shell中的函数(上) 函数就是把一段代码整理到了一个小单元中,并给这个小单元起 一个名字,当用到这段代码时直接调用这个小单元的名字即可. 1. [[email protected] ~]# vi fun1.sh 添加内容: #!/bin/bash function inp(){ echo "The first par is $1" echo "The second par is $2" echo "The third par is $3&q

shell 脚本-关联数组

shell 的关联数组 Shell Associative Array   bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制.shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素.这种数组叫做关联数组(associative array).关联数组的下标和值称为键值对,它们是一一对应的

shell字符串与数组总结

博客主页:http://blog.csdn.net/minna_d 1. 计算字符串长度: echo ${#str} 2. 按字符截取字符串: ${word:begin:length} 3.借助% .%%.#.##对字符串的切割: %:从右向左非贪婪匹配 %%:从右向左贪婪匹配 #:从左向右非贪婪匹配 ##:从左向右贪婪匹配 用法示例: ${str%.*} ${str%%.*} ${str#*.} ${str##*.} PS:"."这里仅仅只是一个普通的点,而不是任意字符 [[emai

shell - 函数、数组定义与调用

#!/bin/bash # returning an array value function arraydblr() { local origarray local newarray local elements local i origarray=(`echo "[email protected]"`) newarrray=(`echo "[email protected]"`) elements=$[ $# -1 ] for((i=0;i<=$eleme

shell实现关联数组

*/--> shell实现关联数组 用 shell 编写数组的输入输出;有一个文件,第一列存主机名,第二列为 IP 地址,如何输入 主机名返回 IP 地址,shell 编写实现: while read host ip; do eval ${host}=${ip} done # 这样就可以直接 echo ${主机名} 了。 一个文件只有 1 列数据,如何用 shell 求这 1 列数据的加和: while read n; do sum=$((sum + n)); done echo $sum Da

Linux Shell 创建序列数组

关于linux数组定义,以及生成方法,请看:linux shell 动态生成 数组系列 seq使用技巧 .这里我主要说的是高效生成list 字符串,还有数组方法. 一.seq方法生成: 1 2 3 [[email protected] shell]$ aNumList=$(seq 100); [[email protected] shell]$ echo $aNumList 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2

(转)轻松掌握shell编程中数组的常见用法及示例

缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习都应该遵循简单.易用的原则. shell编程中数组的简单用法及示例 新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问

shell中的函数、shell中的数组、告警系统需求分析

20.16-20.17 shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function f_name() { command } 函数必须要放在最前面 脚本实例1 #!/bin/bash function inp(){ echo $1 $2 $3 $0 $# } inp 1 a 2 脚本实例2 #!/bin/bash sum() { s=$[$1+$2] echo $s } sum 1 2 脚本实例3

Shell脚本(函数,shell中的数组)

函数 函数就是把一段代码整理到一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式:function f_name(){ command } 函数必须放在最前面,函数名可以自己定义. 案例一: [[email protected] shell]# vim fun.sh #!/bin/bash function inp() { echo $1 $2 $3 $10 ${10} ${11} $0 $# [$*] } inp 1 2 3 4 5 6 7 8 9 3