shell数组

数组

  • 普通数组
    只能使用整数作为数组索引
    • 1.定义数组
      一次赋一个值:数组名[下标]=变量值,例,array1[0]=pear
      一次赋多个值:array2=(tom jack alice)
             array5=(1 2 3 4 5 6 7 “linux shell” [20]=saltstack)
    • 2.访问数组
      echo ${array1[0]} 访问数组中的第一个元数
      echo ${array1[@]} 访问数组中所有元数 等同于 echo ${array1[*]}
      echo ${#array1[@]} 统计数组元素的个数
      echo ${!array2[@]} 获取数组元素的索引
      echo ${array1[@]:1} 从数组下标1开始
      echo ${array1[@]:1:2} 从数组下标1开始,访问两个元素
  • 关联数组
    可以使用字符串作为数组索引

    • 1.定义数组
      使用前先声明关联数组 
      一次赋一个值:declare -A ass_array1;ass_array1[index1]=pear
      一次赋多个值:declare -A ass_array2;
             ass_array2=([index1]=tom
                   [index2]=jack
                   [index3]=alice
                   [index4]=’bash shell’)
    • 2.访问数组
      echo ${ass_array2[index2]} 访问数组中的第二个元数
      echo ${ass_array2[@]} 访问数组中所有元数 等同于 echo ${array1[*]}
      echo ${#ass_array2[@]} 获得数组元数的个数
      echo ${!ass_array2[@]} 获得数组元数的索引
  • 数组和循环

    1:通过循环定义和显示数组
    
#!/bin/bash
#循环读取文件,定义数组
while read line
do
#host:数组名
#[++i]:索引递增,++i是1开始,i++是0开始。
#$line:值,即文件中的内容
        hosts[++i]=$line
done < /etc/hosts
#输出索引第一行
echo “数组hosts first:${hosts[1]}echo ""

#输出索引每一行
for i in ${!hosts[@]}
do
echo "$i  :   ${hosts[$i]}"
done
2:通过数组统计数据
[root@localhost ~]# vim sex.txt
jack m
alice f
tom m
#!/bin/bash
#count sex
#2020
#声明关联数组
declare -A sex
#读取性别文件
while read line
do
#取出性别信息
        type=`echo $line|awk '{print $2}'`
#let计算赋值:数组sex索引type值+1
        let sex[$type]++
done < sex.txt
#输出结果
for i in ${!sex[@]}
do
        echo "$i : ${sex[$i]}"
done
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值