Linux shell —— 数组与关联数组

本文介绍了Shell脚本中两种主要的数组类型:关联数组和序列数组。详细解释了如何使用declare-A声明关联数组并举例说明如何操作数组元素及索引。此外,还介绍了通过seq方法创建序列数组的不同方式,包括使用{begin..end}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 关联数组

  • 使用 declare -A(declare 的用法请使用 help 进行查看,help declare) 进行声明关联数组变量;

    $ declare -A fruits_price
    $ fruits_price=([apple]='$100' [orange]='$150')
    
  • 列出关联数组的索引(也就是 key):

    $ echo ${!fruits_price[*]}
    $ echo ${!fruits_price[@]}
    

2. 序列数组

  • seq 方法创建

    • 基本用法:

      $ a_num_seq = ($seq 5)
      $ echo $a_num_seq
      1 2 3 4 5
      
    • a_num_seq 得到是字符串,不同之处以空格分隔开。在linux 里面,可以把它看作是 list. 可以通过for…in 循环读取。

      $ for i in $a_num_list; do echo $i; done;
      1
      2
      3
      4
      5
      
    • 生成 array,只需在 $(seq 5)外再套一层()

    $ a_num_seq = ($(seq 5))
    $ echo $a_num_seq
    1
    $ echo ${#a_num_seq[@]}
    5		# 得到其长度信息
    
  • 使用 {begin…end}

    注意 begin 和 and 之间是两个小数点,而不是三个;

    $ echo {1..10}
    1 2 3 4 5 6 7 8 9 10
    $ for i in {1..5}; do echo $i; done;
    1
    2
    3
    4
    5
    
  • 性能比较

    $ time echo {1..100000}
    

    real 0m18.758s
    user 0m0.068s
    sys 0m0.012s

    $ time echo $(seq 100000)
    

    real 0m20.064s
    user 0m0.068s
    sys 0m0.012s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值