Linux多维数组

Linux自带的数组只有一维数组,类似于下面:

[zhouchen@hadoop202 ~]$ arr1=(adsa sadfdsa sdfada sfdsa dsafdas)
[zhouchen@hadoop202 ~]$ echo ${arr1[*]}
adsa sadfdsa sdfada sfdsa dsafdas

如果想保存二维数组,比如将key-value类型保存到Linux数组,可以参照下面这种方式:

[zhouchen@hadoop202 ~]$ file_info=(j_spn 3 j_tpf 3 j_ltr 2 j_link 2 j_ffp 2)
[zhouchen@hadoop202 ~]$ h=0
[zhouchen@hadoop202 ~]$ for (( h >=0 ;h < $(expr ${#file_info[*]} / 2 );h++))
> do
>         name=${file_info[$(expr $h \* 2  + 0)]}
>         num=${file_info[$(expr $h \* 2  + 1)]}
>         echo "$name >> $num"
> done
j_spn >> 3
j_tpf >> 3
j_ltr >> 2
j_link >> 2
j_ffp >> 2

原理就是将一维数组进行每2个一组切片,然后切完片的第一个值为key,第二个为value。

同理可以实现三维数组:

[zhouchen@hadoop202 ~]$ file_info=(xiaoming 173 144 xiaohong 162 112 xiaohuang 175 156 xiaogou 141 141)
[zhouchen@hadoop202 ~]$ h=0
[zhouchen@hadoop202 ~]$ for (( h >=0 ;h < $(expr ${#file_info[*]} / 3 );h++))
> do
>         name=${file_info[$(expr $h \* 3  + 0)]}
>         hight=${file_info[$(expr $h \* 3  + 1)]}
>         weight=${file_info[$(expr $h \* 3  + 2)]}
>         echo "$name : $hight , $weight"
> done
xiaoming : 173 , 144
xiaohong : 162 , 112
xiaohuang : 175 , 156
xiaogou : 141 , 141
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值