shell脚本之数组

1. shell数组的概念


shell数组:是若干数据的集合,其中的每一份数据都称为元素
shell不限制数组的大小,理论上可以存放无限量的数据,shell数组元素的下标也是从0开始计数

获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;下标必须大于等于0

遗憾的是,常用的Bash shell只支持一维数组,不支持多维数组

2. 数组的定义


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

array1=(1 2 3 4 5)
echo ${array1[*]}        #输出定义数组的所有元素
echo ${array1[@]}        #输出定义数组的所有元素
echo ${array1[0]}        #输出定义数组的第一个元素
echo ${array1[1]}       #输出定义数组的第二个元素
 

2.2采用键值对的形式赋值

用小括号将变量值括起来,同时采用键值对的形式赋值

array2=([1]=one [2]=two [3]=three)
echo ${array2[*]}        #输出定义数组的所有元素
echo ${array2[@]}       #输出定义数组的所有元素
echo ${#array2[@]}        #输出定义数组的个数


 

 2.3 通过分别定义数组变量的方法来定义

array3[1]=a

array3[2]=b

array3[3]=c

echo ${array3[@]}

echo ${array3[1]}

2.4 动态地定义数组变量

 动态地定义数组变量,并使用命令的输出结果作为数组的内容

mkdir /array/ -p
touch /array/{1..5}.txt
ls /array
array4=($(ls /array))
echo ${array4[*]}
echo ${array4[@]}
echo ${#array4[*]}

 3. 数组的打印

  • 打印单个数组元素: ${数组名[下标]} 。当未指定数组下标时,下标默认从0开始
  • 打印全部数组内容:${数组名[@]}或 ${数组名[*]}
  • 打印数组元素的个数:${#数组名[@]}或 ${#数组名[*]}

4. 数组的赋值

如果下标不存在,则自动添加一个新的元素;如果下标存在,则覆盖原来的值

array2=([1]=one [2]=two [3]=three)
echo ${array2[@]}
echo ${array2[0]}
array2[0]=hello
echo ${array2[0]}
echo ${array2[@]}
array2[4]=hello
echo ${array2[@]}
array2[4]=word
echo ${array2[@]}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值