linux shell之数组
数组的定义
何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。
数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开。
举个列子:
arr_number=(1 2 3 4 5);
字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开。
arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');
数组的操作
我们使用数值类型数组arr_number=(1 2 3 4 5)做为源数组进行相关的讲解:获取数组长度,读取某个下标的值,对某个下标赋值,删除、分配和替换以及遍历。提一个知识点,我们在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}即可。
获取数组长度
arr_length=${#arr_number[*]}或${#arr_number[@]}均可,即形式:${#数组名[@/*]} 可得到数组的长度。
读取某个下标的值
arr_index2=${arr_number[2]},即形式:${数组名[下标]}
对某个下标赋值
这里需要提出两个问题:
第一个问题是如果该下标元素已经存在,会怎么样?
答:会修改该下标的值为新的指定值。
例如:arr_number[2]=100,数组被修改为(1 2 100 4 5)
第二个问题是如果指定的下标已经超过当前数组的大小,如上述的arr_number的大小为5,指定下标为10或者11或者大于5的任意值会如何?
答:新赋的值被追加到数组的尾部。
例如:arr_number[13]=13,数组被修改为(1 2 100 4 5 13)
删除操作
清除某个元素:unset arr_number[1],这里清除下标为1的数组;
清空整个数组:unset arr_number;
分片访问
分片访问形式为:${数组名[@或*]:开始下标:结束下标},注意,不包括结束下标元素的值。
例如:${arr_number[@]:1:4},这里分片访问从下标为1开始,元素个数为4。
模式替换
形式为:${数组名[@或*]/模式/新值}
例如:${arr_number[@]/2/98}
数组的遍历
数组遍历我们使用for语句来演示:
for v in ${arr_number[@]}; doecho $v;
done
linux shell之数组相关推荐
- linux shell 中数组的定义和for循环遍历
linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用.今天突然被问到数组怎么去遍历.平时写shell脚本也经常遍历数组, ...
- linux shell 字符串 数组,bash shell函数返回数组字符串
#!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...
- Linux shell awk数组使用
awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下: abc[1]="xiaohong" abc[2]="xiaolan" ...
- Linux shell 中的数组和关联数组
写在前面的话 我用开始废柴了,这个又是写给我自己看的了. 普通数组 1.数组的定义 在Linux shell中定义一个普通的数组很简单,首先我们先给数组命名(当然要符合所有的命名规则咯).定义数组的一 ...
- linux shell 创建序列数组(list,array)方法
from: http://www.cnblogs.com/chengmo/archive/2010/10/14/1851517.html 关于linux数组定义,以及生成方法,请看:linux she ...
- linux shell数组深入学习理解
本文为大家介绍linux shell数组的相关知识,并提供了充足的例子供参考,这么好的东东,千万不要错过 bash shell只支持一维数组,但参数个数没有限制. 声明一个数组: declare -a ...
- linux shell数组定义、元素获取及其长度获取
linux shell数组定义.元素获取及其长度获取
- linux shell带索引下标遍历数组
linux shell带索引下标遍历数组 for(( i=0;i<${#tmp_arr[@]};i++));do# go get ${tmp_arr[i]}@masterecho ${tmp_a ...
- Linux Shell脚本入门教程系列之(六)Shell数组
本文是Linux Shell脚本系列教程的第(六)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,继上一篇之后,今天就为大家介绍下 ...
最新文章
- C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)
- 蚂蚁科技 Service Mesh 落地实践与挑战
- 【Python3 爬虫】03_urllib.error异常处理
- boost::math::tools::simple_continued_fraction用法的测试程序
- 浅谈一致性Hash原理及应用
- Android 应用内直接跳转酷市场
- mysql insert 二进制_MYSQL 插入二进制数的 2 种方法。
- 猫狗动物声音模拟器微信小程序源码
- MOSS2007服务器端的安装与基本配置
- xp 与 windows 7 共享收藏夹
- oppo r9s 解bl锁,刷入第三方recovery
- Pandownload 百度网盘光速下载 十分简单 一秒破解
- 计算机动漫设计与游戏制作课程,有关计算机动漫与游戏制作专业介绍
- Spark 学习笔记——001【spark-mysql+spark-hive】
- WordPress-Tony极简免费单栏博客主题
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- (1)Part01-项目介绍-01-在线教育行业介绍
- java请输入三个成绩 求平均分_Java编程,定义一个学生类,输入3个学生数据,输出平均分和总分...
- 春节词汇 Spring Festival Words
- MTK工具sigma的使用