bash之数组增删改查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash之数组增删改查相关的知识,希望对你有一定的参考价值。

bash之数组-增删改查
简介:
存储多个元素的连续的内容空间
数组名:自定义
索引:编号从0开始,属于数值索引:
    注意:索引也可支持使用自定义的格式,而不仅仅是数值格式;bash的数组支持稀疏格式:


声明数组:declare -a array_name
关联数组:declare -A array_name
数组元素的赋值方式
    1)一次只赋值一个元素:
      

 array_name[INDEX]=value
     weekdays[0]="sundary"

    2)一次赋值全部元素
      

 array_name=("val1" "val2" "val3" ...)

    3)只赋值特定元素
     

   array_name=([0]="val1" ...)

    4)交互式赋值元素
      

 read -a array_name

向数组中追加元素(按照下标号依次添加,不能断):
  

 array_name[${array_name[*]}]=xxxxxx

关联数组:

    declare -A array_name
    array_name=([index_name1]="val1" [index_name2]="val2" ...)


删除数组中的某元素:
  

 unset array[INDEX]


1)

array=("a" "b" "c" "d")
echo ${array[*]}
a b c d
echo ${array[0]}
a
array[0]="z"
echo ${array[*]}
z b c d

2)
调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

a=(1 2 3 4 5)
echo ${a[@]/3/100}
1 2 100 4 5
echo ${a[@]}
1 2 3 4 5
a=(${a[@]/3/100})
echo ${a[@]}
1 2 100 4 5


引用数组中的元素:${数组名[索引]}
    引用第一个元素
        注意:省略[index]表示引用下标为0的元素
    引用所有所有元素
        数组的长度(数组中元素的个数):${#array_name[*或者@]}
    取出指定元素
        ${array_name[1]}
    数组切片:${array_name[*]:offset:number}
        offset:要跳过的元素个数
        number:要取出的元素个数,取偏移量之后的所有元素:${array_name[*]:offset}
练习题:
练习1:生成10个随机数保存于数组中,并找出最大值和最小值

max=0
for I in {1..9}
do
        rand[$I]=$RANDOM && [ ${rand[$I]} -gt $max ] && max=${rand[$I]}
        echo ${rand[$I]}
done
echo max:$max

练习2:定义一个数组,数组中的元素是/var/log目录下以.log结尾的文件的名字,要统计其下标(【】)为偶数的文件中的行数之和
思路:
整数运算:

{
a=1
b=2
c=$[$a+$b] or
c=$(expr $a + $b)
}
{
file=(/var/log/*.log)
echo ${#file[*]}
echo ${file[*]}
}

练习3:生成10个随机数,升序或降序排序:

本文出自 “zhaoyfcomeon-成长之路” 博客,请务必保留此出处http://zhaoyfcomeon.blog.51cto.com/8429349/1959588

以上是关于bash之数组增删改查的主要内容,如果未能解决你的问题,请参考以下文章

算法基础之数组的增删改查和双指针思想的妙用

算法基础之数组的增删改查和双指针思想的妙用

算法基础之数组的增删改查和双指针思想的妙用

JAVA增删改查

MongoDB 数组元素增删改

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段