linux 修改数组长度限制,linux之shell数组的使用_芳奎的博客-程序员宅基地

技术标签: linux 修改数组长度限制  

在shell中,数组是一种特殊的数据结构。数组中的每一项被称为元素,元素可以通过索引方式取出其值。只支持一维数组,对元素个数没有限制,因为shell变量是弱类型,所以并不要求每个元素都是相同类型。

1.数组定义

1.1使用declare命令定义

使用declare命令先定义数组,再初始化。赋值时元素的数据类型不同.数组的索引从0开始,与java相同。

[[email protected] ~]$ declare -a Array1

[[email protected] ~]$ Array1[0]=1

[[email protected] ~]$ Array1[1]='a'

使用declare命令定义数组同时初始化,且初始化后还可改变数组大小。注意对所有元素同时初始化时,值之间使用空格。

[[email protected] ~]$ declare -a Array2=(1 'b')

[[email protected] ~]$ Array2[2]='a'

1.2不使用declare命令

不使用declare命令的语法如下:

[[email protected] ~]$ Array3=(1 'b')

还可以给特定的元素赋值,例如:对第5个位置和第10个位置的元素赋值:

[[email protected] ~]$ Array3=([4]=4 [9]=5)

2.数组操作

2.1 数组取值

数组取值的格式为:${数组名[索引]};例如取第2个元素的值

[[email protected] ~]$ test_array=('a' 1 'c' 'd')

[[email protected] ~]$ echo ${test_array[1]}

1

若想取出所有的值,使用以下两种方式:

[[email protected] ~]$ Array1=(1 'a')

[[email protected] ~]$ echo ${Array1[*]}

1 a

[[email protected] ~]$ echo ${Array1[@]}

1 a

从表面上看,两者并没什么区别,但是A

r

r

a

y

1

[

@

]

{Array1[@]}得到的是以空格隔开的元素值;而Array1[@]得到的是以空格隔开的元素值;而{Array1[*]}输出的是一整个字符串。

2.2 数组长度

数组长度:即数组元素个数。利用"@“或”*“字符,将数组扩展成列表,然后使用”#"来获取数组元素的个数。例如:

[[email protected] ~]$ echo ${#Array1[@]}

2

[[email protected] ~]$ echo ${#Array1[*]}

2

2.3 数组截取

数组截取:截取整个数组或某个元素的一部分。例如:

取出数组的第一个,第二个元素

[[email protected] ~]$ my_array=(1 'a' 'HelloWorld')

[[email protected] ~]$ echo ${my_array[@]:1:2}

a HelloWorld

取出第三个元素从第0个字符开始连续5个字符

[[email protected] ~]$ echo ${my_array[2]:0:5}

Hello

2.4 连接数组

连接数组:若干个数组进行拼接操作

[[email protected] ~]$ Conn=(${Array1[@]} ${my_array[@]})

[[email protected] ~]$ echo ${Conn[@]}

1 a 1 a HelloWorld

2.5 替换数组

替换数组:将数组内某个元素的值进行替换

[[email protected] ~]$ Array1=(1 'a')

[[email protected] ~]$ Array1=(${Array1[@]/a/b})

[[email protected] ~]$ echo ${Array1[@]}

1 b

2.6 取消数组或元素

取消数组或元素使用的命令为unset

[[email protected] ~]$ Array1=(1 'a')

[[email protected] ~]$ unset Array1[1]

[[email protected] ~]$ echo ${Array1[@]}

1

[[email protected] ~]$ unset Array1

[[email protected] ~]$ echo ${Array1[@]}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30036289/article/details/117006234

智能推荐

中职计算机应用专业的专业方向,中职计算机应用专业专业建设思考_光明与希望的博客-程序员宅基地

【摘要】多年从事计算机应用专业的教学工作,对计算机应用专业的改革、创新、发展有诸多观察、想法。本文从当前中职计算机专业学生就业难现状的思考入手, 根据市场的需求及中职计算机应用专业建设过程中出现的一些问题,从人才培养目标、专业课程建设、教师的培养、多途径加强计算机实践课教学、培养学生综合能力方面提出了中职计算机应用专业建设如何适应市场需求而开展建设。【关键词】专业建设 学生就业 综合能力一、背景中...

win98老机子安装linux,只装了Win98电脑的Linux系统安装和修复_weixin_39530288的博客-程序员宅基地

一台老电脑,安装的是Win98系统,有软驱和光驱。准备光盘安装 RHEL 4,但无法从Linux 安装盘CD-ROM启动(原因不明)。只好先用硬盘安装的方式:(1) 准备好isolinux 文件夹,关键是文件loadlin.exe,initrd.img和vmlinuz,写好 autoboot.bat文件,放在C:\;(2) 用Win98 启动软盘启动,支持CD-ROM;(3) 在命令行模式下运行a...

小麦助教:通过阿里云原生中间件产品组合,加速微服务架构落地_阿里巴巴中间件的博客-程序员宅基地

作者:神鱼,阿里云解决方案架构师小麦助教是专业的教育信息化全渠道服务商,以数据和技术为引擎,为教育机构提供一站式数字化运营管理解决方案。现产品体系包含小麦助教管理系统、小麦秀、云课堂、麦麦打卡、小麦校讯通、小麦学院、小麦收银等,帮助教育机构解决招生营销、教务管理、家校服务等全流程运营管理难题,率先实现了在 SaaS 信息化服务、内容营销、金融服务等多元领域的落地应用,从教育培训机构运营管理场景切入,通过“SaaS+增值服务”模式帮助 K12 教培机构实现信息化升级。小麦助教基于互联网领...

第5组团队展示_an199224的博客-程序员宅基地

组长本次展示博客链接拟作团队项目描述我们不生产粮食,我们只是食堂与超市的搬运工队员风采方瑞雄风格:懵懵懂懂,飘忽不定擅长的技术:没有特别擅长的技术,会一点点C++和Python编程的兴趣:喜欢前端,对界面比较感兴趣,喜欢用python解决事情希望的软工角色:本组组长,多为统筹兼顾,技术支持的话帮忙写后端一句话宣言:向更高的山峰出发王玥风格:比较佛系(?)擅长...

C#获取类型的默认值_HOLD ON!的博客-程序员宅基地_c# 类成员 默认值

C#获取类型的默认值jumtre 2018-10-25 21:10:28 2187 收藏展开方法一:(参见默认值表(C# 参考))使用默认值表达式生成类型的默认值,如以下示例所示:int a = default(int);从 C# 7.1 开始,可使用default文本来初始化变量,使其具有其类型的默认值:int a = default;还可使用默认构造函数或隐式默认构...

江苏省教育考试院计算机二级c报名时间,江苏省计算机二级考试时间报名和考试时间..._清风学渣的博客-程序员宅基地

满意答案chiyu97zg2020.11.26采纳率:59%等级:12已帮助:6655人考试级别、语种为适应新时期信息科学技术的快速发展,进一步加强我省高校计算机基础教学工作,推进高校更加科学、合理地设置计算机基础课程及安排教学内容,江苏省教育厅委托江苏省高等学校计算机等级考试指导委员研究制定了《江苏省高等学校计算机等级考试大纲(2015年修订)》,自 2015年秋季起实施,并按新体系开考...

随便推点

了解域名、域名系统及域名的解析过程以及Linux操作系统下DNS域名解析服务的搭建过程_Zhang To_Dream的博客-程序员宅基地

1.什么是域名?什么是域名系统? **域名系统DNS(Domain Name System)**是因特网使用的命名系统,互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串,DNS使用TCP和UDP的 53号端口。出于性能的考虑,DNS查询请求用UDP协议交互并且每个请求的大小小于512字节,但是如果返回的请求...

Kubernetes 工作负载控制器Controller Deployment_富士康质检员张全蛋的博客-程序员宅基地

一个 Pod 被创建出来,不管是由你直接创建,还是由其他工作负载控制器(Workload Controller)自动创建,经过调度器调度以后,就永久地“长”在某个节点上了,直到该 Pod 被删除,或者因为资源不够被驱逐,抑或由于对应的节点故障导致宕机等。因此单独地用一个 Pod 来承载业务,是没办法保证高可用、可伸缩、负载均衡等要求,而且 Pod 也无法“自愈”。这时我们就需要在 Pod 之上做一层抽象,通过多个副本(Replica)来保证可用 Pod 的数量,避免业务不可用。在介绍 Kuberne..

视频编码理论知识之熵编码_Claire_wulian的博客-程序员宅基地

H.264使用了多种编码方式来对语法元素进行编码。其中CAVLC与CABAC是H.264/AVC标准中两种用来对残差系数进行熵编码的方式。一、CAVLCH.264标准中,CAVLC(基于上下文自适应的可变长编码)被用于亮度和色度的残差数据的编码。1.相关原理编码宏块的残差经过变换量化后的数据表现出如下特性:编码宏块的残差经过变换量化后,其非零系数主要集中在低频部分,高频系数大部分是零。...

Unity 打包Mac应用程序注意事项_LixiSchool的博客-程序员宅基地_unity打包mac

unity中打包mac系统应用的时候,不要选择apple Silicon就行,另外两个都可以提示没有权限解决方案:如何解决M1版Mac提示“您没有权限来打开应用程序‘xxx’”? - 知乎打开命令终端输入:sudochmod-R755后面拖入要打开的应用程序(中间有空格)提示apple无法检查的坚决方案:在“无法打开因为apple无法检查其是否包含恶意软件”的提示中点击“好”,2.打开系统偏好设置,3.在偏好设置界面,点击“安全性和隐私”;4.进入安全性和隐私窗口,点击“通用...

高德正式开放海外LBS服务,助力开发者出海_weixin_33912445的博客-程序员宅基地

本文讲的是高德正式开放海外LBS服务,助力开发者出海9月25日,高德开放平台宣布正式开放海外LBS服务,助力中国开发者出海。既高德推出无障碍地图之后,开放平台又为合作伙伴带来了海外地图SDK。 “随着越来越多的应用开始将自身业务向海外发展,对于海外LBS服务的需求也越来越强,”高德开放平台总经理童遥表示,“高德开放平台经过一段时间的努力,目前已经完成了主...

Egret3D 研究报告(一)初试_weixin_34162228的博客-程序员宅基地

 了解的朋友应该知道我最近一直都在鼓吹webgl.今天有一点时间,加了一个Egret3D的群,就开始了这个坑。耳听为虚,眼见为实。让我们荡起双桨,一起去刷一下egret打开姿势至于以什么姿势打开,就让我用截图来解释吧。由于我是vs重度爱好者,egretWing用起来实在是苦不堪言,于是我又安装了基本的姿势问题,请询Egret各种社区,我们就来谈一谈代码。...

推荐文章

热门文章

相关标签