文章目录

  • 1. 定义数组
    • 1.1 逐个元素定义数组
    • 1.2 定义整个数据
  • 2. 查看数组
  • 3. 访问数组
    • 3.1 访问数组中的第一个元素
    • 3.2 访问多个元素
    • 3.3 统计数组元数的个数
    • 3.4 获取数组元数的索引
  • 4. 删除数组
  • 5. 关联数组
    • 5.1 语法:
    • 5.2 示例
  • 6. 二维数组

1. 定义数组

普通数组,只能以整数为索引

1.1 逐个元素定义数组

  • 语法
    数组名[下标]=变量值

  • 示例

定义数组中一个元素

# array1[3]=zhangfei

查看结果

# declare -a |grep array
declare -a array1='([2]="zhangfei")'

说明:不必从0开始定义,会自动按索引排序。

再定义一个

# array1[0]=liubei

查看:

# declare -a |grep array
declare -a array1='([0]="liubei" [2]="zhangfei")'

1.2 定义整个数据

  • 从列表定义数组
# array2=(sunquan zhouyu "lu su")
  • 从文件定义数组
# array3=(`cat /etc/user_name.txt`)

2. 查看数组

# declare -adeclare -a array2='([0]="sunquan" [1]="zhouyu" [2]="lu su")'declare -a array3='([0]="caocao" [1]="caopi" [2]="caozhi" )'

3. 访问数组

3.1 访问数组中的第一个元素

  • 语法
    ${数组名[索引]}

  • 示例

# echo ${array1[0]}
liubei

3.2 访问多个元素

  • 语法:${数组名[@]:M:N}

说明:
@ 表示所有元素
M 表示从索引M开始
N 表示从M开始访问几个元素(而不是到第几个)

  • 示例

数组如下

# declare -a |grep array
declare -a array1='([0]="liubei" [1]="guanyu" [3]="zhangfei")'

访问所有数组

# echo ${array1[@]}
liubei guanyu zhangfei

从索引1开始

# echo ${array1[@]:1}
guanyu zhangfei

从索引1开始访问两个元素

# echo ${array1[@]:1:2}
guanyu zhangfei

访问“1号元素”开始的两个元素。即使 2号元素空缺, 张飞 是3号元素 也会被显示出来。

3.3 统计数组元数的个数

  • 语法
    ${#数组名[@]}
    获取数组元数的索引: ${ !数组名[@]}

  • 示例

# echo ${#array1[@]}
3

注意:即使是从索引1开始取数,仍然会显示总数。测试如下:

# echo ${#array1[@]:1}
3

3.4 获取数组元数的索引

  • 语法
    ${ !数组名[@]}

  • 获取索引

# echo ${!array1[@]}
0 1 3
  • 后边不可以在接其他,否则区不到值(这点和统计数据元素个数不同)
# echo ${#array1[@]:1}

4. 删除数组

  • 语法

删除元素:unset 数组名[索引]

删除数组:unset 数组名

  • 示例
# unset array1[0]
# echo ${!array1[@]}
1 3
# echo ${array1[@]}
guanyu zhangfei

5. 关联数组

可以用字符做索引

5.1 语法:

  • 声明 # declare -A 数组名

敲黑板:关联数组必须先定义

  • 赋值
    # 数组名[索引]=值
    # 数组名=([索引1]="值1" [索引2]="值2" …… )

  • 查看 # declare -A

  • 访问 同访问普通数组

5.2 示例

  • 声明数组
# declare -A array4

定义数组

# array4=(["name"]="zhaoyun" ["sex"]="male" ["age"]="18")

查看

# declare -A|grep array2
declare -A array2='([name]="zhaoyun" [age]="18" [sex]="male" )'
# echo ${array2[name]}
zhaoyun
# echo ${array2[age]}
18

6. 二维数组

脚本只支持一维变量。

  • 语法
    array3[1][2]=变量值

shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组)相关推荐

  1. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  2. c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...

    导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...

  3. java语言:创建一个二维数组,将古诗《春晓》的内容赋值于二维数组,然后分别用横版和竖版两种方式输出。

    问题:创建一个二维数组,将古诗<春晓>的内容赋值于二维数组,然后分别用横版和竖版两种方式输出. 前两天上java课的时候老师,给我们出了这道题.要求:要用java语言来写. 根据要求创建的 ...

  4. c语言用二维数组打印空心菱形,java杨辉三角和空心菱形(二维数组篇)

    一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...

  5. php数组制作查找筛选页面,php利用array_search与array_column实现二维数组查找

    在看php手册数组函数时,看到了一个高赞的用户回答传送门,利用array_search与array_column实现二维数组查找,不用自己写个循环,减少工作量.<?php $userdb = a ...

  6. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

  7. php删除二维数组的某一行某一列_php中怎么去除二维数组的某个字段?

    1,需求:有如下二维数组,怎么去除此数组的字段"on" 生成一个新数组 $arr2 $arr = array("net" => array("o ...

  8. c语言sort函数排序二维数组,c++ - 如何使用stl sort函数根据第二列对二维数组进行排序? - 堆栈内存溢出...

    stl排序要求迭代器的rvalue作为参数传递. 如果你想使用sort函数,你必须在c ++ 11中编译并使用数组stl来存储数组. 代码如下 #include "bits/stdc++.h ...

  9. c语言中二维数组的结构体,怎么才能把结构体里面的二维数组打印出来?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 萌新一位,学到结构体在做作业,遇到了这个问题.求提示 出现这样的报错:[Error] cannot convert 'char (*)[20]' to ' ...

  10. android arrays.xml 二维数组,android中怎的从xml文件中解析一个二维数组

    Java codeXmlPullParser parser = Xml.newPullParser(); try { int nTouched = 0; String result = null; / ...

最新文章

  1. IEEE-754标准(32位) 十六进制转换十进制浮点数
  2. webpack打包HTML配置自动,十三、HtmlWebpackPlugin的使用 ------- 2019-04-25
  3. 容斥原理应用(求1~r中有多少个数与n互素)
  4. Date类 和 Calendar类
  5. shiro 同时实现url和按钮的拦截_Shiro权限管理框架(一):Shiro的基本使用
  6. 循环链表(线性表的链式存储)---C语言版
  7. 团购的野心,占领网购市场半壁江山?
  8. [新整理] CAD高级模拟考题
  9. 在eclipse中建立java项目
  10. 利用360卫士打补丁
  11. LeetCode每日一题——592. 分数加减运算
  12. 导航系统中里程计研究综述
  13. cad渐开线齿轮轮廓绘制_CAD画齿轮的方法
  14. 数据结构C语言——广义表
  15. 常用软件安装及破解——IntelliJ IDEA 2019.1
  16. 5G网络测速,实在是太快了!
  17. discuzapi插件_discuz 代码api
  18. Python hasattr()
  19. 阿里云https证书申请与部署
  20. 东南大学信息学院考研经验

热门文章

  1. 从乡土走向国际,江小白的背后暗藏了哪些玄机?
  2. 谷歌 I/O 2019来啦!让我们看看有什么黑科技吧
  3. puppeteer(一)环境搭建——新Web自动化工具(同selenium)
  4. 语义搜索及框计算:从百度查生僻字谈起
  5. 解决跨域问题(详解9种方法)
  6. vue 路由跳转方式
  7. 网页html——菜单小图标的使用(矢量图)
  8. Java运行参数详解
  9. Linux学习5之文件目录指令对对碰
  10. C#调用C++、Opencv的Dll