shell数组、关联数组

数组中可以存放多个值。bash shell只支持一维数组,初始化无序定义数组大小。数组元素下标由0开始。

1、基本数组

(1)数组的定义

在shell中,使用括号()来表示数组,数组元素之间用空格来分割

方法1:
数组名称=(元素1 元素2 元素3 ....)
方法2:
数组名称[0]=元素0
数组名称[1]=元素1
数组名称[2]=元素2
数组名称[3]=元素3

(3)获取数组元素

${数组名称[索引]}

使用@*获取数组中的所有元素

${数组名称[*]}
${数组名称[@]}

(4)统计数组元素的个数

${#数组名[@]}
${#数组名[*]}

(5)获取数组元素的索引

${!数组名[*]}

(6)获取数组下标从n开始的所有元素

${数组名[@]:n}

(7)从数组下标n开始,获取m个元素

${数组名[@]:n:m}

示例

#!/bin/bash
arr=(a b cc dd)
arr[4]="ee e"
arr[5]=f
arr[6]=g

echo "数组第3个元素为:${arr[2]}"

echo "数组的全部元素为:${arr[*]}"

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

echo "获取数组元素索引:${!arr[*]}"

echo "获取数组下表从2开始的所有元素:${arr[*]:2}"

echo "获取数组下面从1开始的3个元素:${arr[*]:1:3}"

在这里插入图片描述

2、关联数组

关联数组使用字符串作为下标,而不是整数。关联数组也称“键值对(key-value)”数组,key为下标,value为元素值。

(1)关联数组的声明

方式: declare -A 数组名

(2)关联数组赋值

一次赋一个值

数组名[索引]=值

一次赋多个值

数组名=([索引1]=值1 [索引2]=值2 [索引3]=值3)

(3)访问关联数组元素

echo ${数组名[key]}					#访问“key”对应的value值

#获取关联数组的所有元素值
echo ${数组名[@]}
echo ${数组名[*]}
#获取关联数组的所有下标值
echo ${!数组名[@]}
echo ${!数组名[*]}

(4)获取关联数组元素的个数

echo ${#数组名[@]}
echo ${#数组名[*]}

示例:

#!/bin/bash

declare -A arry1                #声明关联数组arry1

arry1=([name]="zhangsan" [sex]=nan [age]=17)

arry1[addr]="China"
arry1[email]="xxx@mail.com"

echo "name对应的值为:${arry1[name]}"

echo "email对应的值为:${arry1[email]}"

echo "该关联数组一共有:${#arry1[*]}个元素"

echo "数组全部元素为:${arry1[*]}"

echo "数组的所有下标为:${!arry1[*]}"

在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值