文档章节

linux shell 数组建立及使用技巧

xxjbs001
 xxjbs001
发布于 2015/04/22 10:20
字数 569
阅读 15
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。

 

1.数组定义

 

[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1

 

一对括号表示是数组,数组元素用“空格”符号分割开。

 

2.数组读取与赋值

  • 得到长度

[chengmo@centos5 ~]$ echo ${#a[@]}
5

用${#数组名[@或*]} 可以得到数组长度

  • 读取

[chengmo@centos5 ~]$ echo ${a[2]}
3

[chengmo@centos5 ~]$ echo ${a[*]}
1 2 3 4 5   

用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容

  • 赋值:

[chengmo@centos5 ~]$ a[1]=100

[chengmo@centos5 ~]$ echo ${a[*]}
1 100 3 4 5

 

[chengmo@centos5 ~]$ a[5]=100    
[chengmo@centos5 ~]$ echo ${a[*]}

1 100 3 4 5 100

直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素

  • 删除:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a
[chengmo@centos5 ~]$ echo ${a[*]}

[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a[1]  
[chengmo@centos5 ~]$ echo ${a[*]}
1 3 4 5
[chengmo@centos5 ~]$ echo ${#a[*]}
4

直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

 

 

3.特殊使用

  • 分片:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]:0:3}
1 2 3
[chengmo@centos5 ~]$ echo ${a[@]:1:4}
2 3 4 5

[chengmo@centos5 ~]$ c=(${a[@]:1:4})
[chengmo@centos5 ~]$ echo ${#c[@]}
4
[chengmo@centos5 ~]$ echo ${c[*]}
2 3 4 5

直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

  • 替换:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)   
[chengmo@centos5 ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 3 4 5
[chengmo@centos5 ~]$ a=(${a[@]/3/100})
[chengmo@centos5 ~]$ echo ${a[@]}    
1 2 100 4 5

调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

 

从上面讲到的,大家可以发现linux shell 的数组已经很强大了,常见的操作已经绰绰有余了。

xxjbs001
粉丝 55
博文 771
码字总数 218643
作品 0
浦东
QA/测试工程师
私信 提问
加载中
请先登录后再评论。
shell脚本通过curl来post命令json请求

用shell脚本通过curl来发送post请求,然后关键字"shell curl json"搜到文章<linux shell中curl 发送post请求json格式问题>:"json数据里变量要用''括起来",然后在shell命令行上的确如此,然后......

osc_5i4e20is
2018/06/21
77
0
shell 基本操作小结

1.和命令 运行结果(demo.sh不存在): 需要注意的是等号两边是不能有空格的;中[]左右两侧都是有空格的。 2.shell基本操作 2.1 变量大于,等于,小于 表示大于;表示小于;表示等于。运行结果为:...

osc_z7ezpf37
2018/06/21
2
0
传智C++学习大纲

C/C++课程大纲 1.Windows平台实现自定义3D武侠游戏,语音控制游戏,手势控制游戏 2.Android平台智能交互机器人案例,运用人脸识别技术,手势识别技术,语音识别技术,人工智能技术综合实现 ...

needly
2013/08/16
128
0
Linux Shell常用技巧【转】

转自:http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2285454.html 在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化、我们数据采集服务器的资源利用率监控,...

eechen
2012/10/23
544
1
linux shell 数组建立及使用技巧

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo...

china008
2015/07/24
7
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序|navigator组件-实现页面跳转

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 问题描述 现在大家所用的各种微信小程序都是看似结构简单、内容精炼...

算法与编程之美
03/31
0
0
【leetcode刷题】20T26-最后一个单词的长度

木又同学2020年第26篇解题报告 leetcode第58题:最后一个单词的长度 https://leetcode-cn.com/problems/length-of-last-word/ 【题目】 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回...

唐建权
03/01
0
0
我的电脑不联网,很安全。黑客:你还有风扇呢!

点击蓝色“ Python空间 ”关注我丫 加个“星标”,每天一起快乐的学习 转自机器之心 从 1988 年第一个网络蠕虫病毒诞生以来,「互联网危机四伏」的观念就已经深入人心。如果只是这样,不给电...

Rocky0429
05/10
0
0
[codeforces 1372D] Omkar and Circle 圆上区间动归

Codeforces Round #655 (Div. 2) 参与排名人数15842 天天熬夜打比赛,身体吃不消,作了一个充满幸福感的决定,赛后第二天再刷 [codeforces 1372D] Omkar and Circle 圆上区间动归 总目录详见htt...

osc_9mt0ncuk
1分钟前
0
0
不断进化的分支和需求管理

昨天有朋友在公众号私信问我几个关于代码分支管理的问题,这几个问题是我去年写的《在团队中使用GitLab中的Merge Request工作模式》一文结尾时抛出的几个问题: 如果系统上线后有紧急Bug需要...

冯威
2019/06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部