shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组)
文章目录
- 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 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组)相关推荐
- 二维数组在c语言中的作用,C语言中的二维数组
1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...
- c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...
导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...
- java语言:创建一个二维数组,将古诗《春晓》的内容赋值于二维数组,然后分别用横版和竖版两种方式输出。
问题:创建一个二维数组,将古诗<春晓>的内容赋值于二维数组,然后分别用横版和竖版两种方式输出. 前两天上java课的时候老师,给我们出了这道题.要求:要用java语言来写. 根据要求创建的 ...
- c语言用二维数组打印空心菱形,java杨辉三角和空心菱形(二维数组篇)
一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...
- php数组制作查找筛选页面,php利用array_search与array_column实现二维数组查找
在看php手册数组函数时,看到了一个高赞的用户回答传送门,利用array_search与array_column实现二维数组查找,不用自己写个循环,减少工作量.<?php $userdb = a ...
- 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
贺老师教学链接 C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...
- php删除二维数组的某一行某一列_php中怎么去除二维数组的某个字段?
1,需求:有如下二维数组,怎么去除此数组的字段"on" 生成一个新数组 $arr2 $arr = array("net" => array("o ...
- c语言sort函数排序二维数组,c++ - 如何使用stl sort函数根据第二列对二维数组进行排序? - 堆栈内存溢出...
stl排序要求迭代器的rvalue作为参数传递. 如果你想使用sort函数,你必须在c ++ 11中编译并使用数组stl来存储数组. 代码如下 #include "bits/stdc++.h ...
- c语言中二维数组的结构体,怎么才能把结构体里面的二维数组打印出来?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 萌新一位,学到结构体在做作业,遇到了这个问题.求提示 出现这样的报错:[Error] cannot convert 'char (*)[20]' to ' ...
- android arrays.xml 二维数组,android中怎的从xml文件中解析一个二维数组
Java codeXmlPullParser parser = Xml.newPullParser(); try { int nTouched = 0; String result = null; / ...
最新文章
- IEEE-754标准(32位) 十六进制转换十进制浮点数
- webpack打包HTML配置自动,十三、HtmlWebpackPlugin的使用 ------- 2019-04-25
- 容斥原理应用(求1~r中有多少个数与n互素)
- Date类 和 Calendar类
- shiro 同时实现url和按钮的拦截_Shiro权限管理框架(一):Shiro的基本使用
- 循环链表(线性表的链式存储)---C语言版
- 团购的野心,占领网购市场半壁江山?
- [新整理] CAD高级模拟考题
- 在eclipse中建立java项目
- 利用360卫士打补丁
- LeetCode每日一题——592. 分数加减运算
- 导航系统中里程计研究综述
- cad渐开线齿轮轮廓绘制_CAD画齿轮的方法
- 数据结构C语言——广义表
- 常用软件安装及破解——IntelliJ IDEA 2019.1
- 5G网络测速,实在是太快了!
- discuzapi插件_discuz 代码api
- Python hasattr()
- 阿里云https证书申请与部署
- 东南大学信息学院考研经验