数组

bash 只支持一维数组。

数组下标从 0 开始,下标可以是整数或算术表达式,其值应大于或等于 0。

创建数组

# 创建数组的不同方式
nums=([2]=2 [0]=0 [1]=1)
colors=(red yellow "dark blue")

访问数组元素

访问数组的单个元素

echo ${nums[1]}
# Output: 1

访问数组的所有元素

echo ${colors[*]}
# Output: red yellow dark blue echo ${colors[@]}
# Output: red yellow dark blue

访问数组的部分元素

echo ${nums[@]:0:2}
# Output:
# 0 1

访问数组长度

echo ${#nums[*]}
# Output:
# 3

向数组中添加元素

向数组中添加元素也非常简单:

colors=(white "${colors[@]}" green black)
echo ${colors[@]}
# Output:
# white red yellow dark blue green black

上面的例子中,${colors[@]} 扩展为整个数组,并被置换到复合赋值语句中,接着,对数组colors的赋值覆盖了它原来的值。

从数组中删除元素

unset命令来从数组中删除一个元素:

unset nums[0]
echo ${nums[@]}
# Output:
# 1 2

【Shell】数组的更多相关文章

  1. Linux Shell 数组

    shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ...

  2. shell--2.shell数组

    shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...

  3. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  4. Shell数组例子

    Shell数组例子 循环打印数组,并统计数组的个数: [root@slavedb array]# cat a.sh #!/bin/bash array=( freddy freddie tang sh ...

  5. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  6. 教你使用shell数组

    数组的使用,需要掌握 1.对数组进行赋值 2.通过下标访问数组元素 3.循环遍历所有的元素 代码如下: #!/bin/bash a="39" b="5" c=& ...

  7. linux shell数组

    from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不 ...

  8. Shell 数组定义与获取

    Shell 数组 bash支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与 C 语言,数组元素的下标由 0 开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于 ...

  9. 【Linux】shell数组

    一.概念 shell数组就是一个元素集合,它把有限个元素用一个名字来命名,然后用编号对他们分区.这个名字称为数组名,用于区分不同内容的编号称为数组的下标. 二.shell数组的定义与增删改查 1.sh ...

  10. shell 数组,双层循环打印变量

    双层循环,打印循环执行次数. 特别注意 ,shell 脚本赋值时 '=' 两侧不能有空格,否则报错,shell command not found 但在if 语句中需要有: STR1="ab ...

随机推荐

  1. day110:MoFang:重新构造用户关系状态&添加好友&处理好友申请&获取申请好友历史记录&好友列表显示

    目录: 1.用户关系状态:重新构造 2.添加好友 3.处理好友申请 4.获取申请好友历史记录 5.好友列表 day109+day110所学内容流程图 1.用户关系状态:重新构造 在day109博客的前 ...

  2. oracle数据对比--用户,索引,分区,dblink,同义词,视图

    问题描述:需要对比用户数据一般在数据库迁移之后,需要对比一下两个库之间的差距,如果登上去一条命令的执行,去统计,就会比较麻烦,这里整理了一些脚本可用.通过创建dblink的方式快速查询,也可以整合到一 ...

  3. $\Beta$分布推导与可视化

    $\Gamma$函数 $\Gamma$函数(Gamma函数)是阶乘函数在实数和复数域的扩展.对于正整数$n$,阶乘函数表示为$n! = 1 \times 2 \times ... \times n$. ...

  4. OI 数论中的上界估计与时间复杂度证明

    预备 0.1 渐进符号 其实不少高等数学 / 数学分析教材在讲解无穷小的比较时已经相当严谨地介绍过大 O.小 O 记号,然而各种历史习惯记法的符号滥用(abuse of notation)[1] 直到 ...

  5. 对doccano自动标注使用的默认UIE模型进行微调以提高特定领域的实体识别能力,提高标注速度

    虽然doccano的自动标注使用默认的UIE模型可以识别出一定的实体,但是在特定领域或者因为实体类别名不能被理解很多实体是识别不了的,所以我们可以通过自己标注的数据对模型进行微调来满足我们Auto L ...

  6. Java实现平衡二叉搜索树(AVL树)

    上一篇实现了二叉搜索树,本章对二叉搜索树进行改造使之成为平衡二叉搜索树(Balanced Binary Search Tree). 不平衡的二叉搜索树在极端情况下很容易退变成链表,与新增/删除/查找时 ...

  7. Django 如何使用 Celery 完成异步任务或定时任务

    以前版本的 Celery 需要一个单独的库(django-celery)才能与 Django 一起工作, 但从 Celery 3.1 开始,情况便不再如此,我们可以直接通过 Celery 库来完成在 ...

  8. 计算机网络之MAC和IP地址

    MAC地址 在局域网中,硬件地址,又称为物理地址或MAC地址. 目前现在的局域网中实际上使用的都是6字节的MAC地址,所以每一个以太网设备都具有唯一的MAC地址. MAC地址的格式 假设传输使用的是I ...

  9. 2022-01-12:给定一个正数数组arr,长度为n,下标0~n-1, arr中的0、n-1位置不需要达标,它们分别是最左、最右的位置, 中间位置i需要达标,达标的条件是 : arr[i-1] >

    2022-01-12:给定一个正数数组arr,长度为n,下标0~n-1, arr中的0.n-1位置不需要达标,它们分别是最左.最右的位置, 中间位置i需要达标,达标的条件是 : arr[i-1] &g ...

  10. Redis数据结构一之对象的介绍及各版本对应实现

    本文首发于公众号:Hunter后端 原文链接:Redis数据结构一之对象的介绍及各版本对应实现 本篇笔记开始介绍 Redis 数据结构的底层实现. 当我们被问到 Redis 中有什么数据结构,或者说数 ...