linux Shell 命令行-03-array Shell 数组

打印 上一主题 下一主题

主题 838|帖子 838|积分 2514

拓展阅读

linux Shell 命令行-00-intro 入门介绍
linux Shell 命令行-02-var 变量
linux Shell 命令行-03-array 数组
linux Shell 命令行-04-operator 操作符
linux Shell 命令行-05-test 验证是否符合条件
linux Shell 命令行-06-flow control 流程控制
linux Shell 命令行-07-func 函数
linux Shell 命令行-08-file include 文件包罗
linux Shell 命令行-09-redirect 重定向
定义

Shell 仅支持单维数组。
  1. array=(值1 值2 ... 值n)
复制代码

  • array.sh
  1. #!/bin/sh
  2. # 数组演示
  3. array=(a b "c" d)
  4. # 另一种定义数组的方式
  5. array_two[0]=a
  6. array_two[1]=b
  7. array_two[2]="c"
  8. array_two[3]=d
复制代码
读取

您可以这样从数组中读取:
  1. ${array_name[index]}
复制代码

  • read_array.sh
  1. #!/bin/sh
  2. # 从数组中读取
  3. array=(a b c "d")
  4. echo "第一个元素是 ${array[0]}"
  5. echo "第二个元素是 ${array[1]}"
  6. echo "第三个元素是 ${array[2]}"
  7. echo "最后一个元素是 ${array[-1]}"
复制代码

  • 运行
  1. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_array.sh
  2. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_array.sh
  3. 第一个元素是 a
  4. 第二个元素是 b
  5. 第三个元素是 c
  6. 最后一个元素是 d
复制代码
读取所有元素

我们可以使用 * 或 @ 来获取数组中的所有元素。

  • read_all_array.sh
  1. #!/bin/sh
  2. # 读取数组中的所有元素
  3. array=(a b c d)
  4. echo "数组中的所有元素:${array[*]}"
  5. echo "数组中的所有元素:${array[@]}"
复制代码

  • 运行
  1. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x read_all_array.sh
  2. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./read_all_array.sh
  3. 数组中的所有元素:a b c d
  4. 数组中的所有元素:a b c d
复制代码
数组长度

我们可以使用 ${#array
  • } 或 ${#array[@]} 来获取数组的大小。

    • array_length.sh
    1. !#/bin/sh
    2. # 数组长度
    3. array=(a b c d E)
    4. echo "数组的大小为:${#array[*]}"
    5. echo "数组的大小为:${#array[@]}"
    复制代码

    • 运行
    1. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# chmod +x array_length.sh
    2. root@iZuf60ahcky4k4nfv470juZ:~/code/shell# ./array_length.sh
    3. 数组的大小为:5
    4. 数组的大小为:5
    复制代码
    参考资料

    https://www.runoob.com/linux/linux-shell.html
    本文由博客一文多发平台 OpenWrite 发布!

    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
  • 回复

    使用道具 举报

    0 个回复

    倒序浏览

    快速回复

    您需要登录后才可以回帖 登录 or 立即注册

    本版积分规则

    曹旭辉

    金牌会员
    这个人很懒什么都没写!

    标签云

    快速回复 返回顶部 返回列表