Linux 数组
200 ? "200px" : this.width)!important;}
-->
:介绍
在shell4.0之后支持普通数组和关联数组,普通数组只能使用整数作为索引,关联数组可以使用字符串作为索引。
普通数组
普通数组的定义方法有如下两种,注意数组的索引是从0开始
方法1:值之间是使用空格隔开
array=(1 2 3 4 5)
方法2:直接定义索引-值的方法,其实该方法相当于是在给数组元素赋值。
array[0]="value"
array[1]="value"
1.查看单个数组元素值,值的下标从0开始。
[root@localhost backup]# echo ${array[]}
2.查询数组所有元素的值,使用*或者@
[root@localhost backup]# echo ${array[*]}
[root@localhost backup]# echo ${array[@]}
3.查询数组元素的个数,#
[root@localhost backup]# echo ${#array[*]}
4.改变数组元素的值
[root@localhost backup]# array[2]="33"
[root@localhost backup]# echo ${array[*]}
5.定义索引并引用
[root@localhost backup]# i=
[root@localhost backup]# echo ${array[$i]}
6.查询数组的索引,使用!
[root@localhost backup]# echo ${!array[*]}
关联数组
普通数组的索引只能是整数,比如array[0],array[1]等,关联数组的索引可以是字符串,使用关联数组之前必须先声明关联数组。
声明关联数组:
declare -A ass_array
将元素添加到关联数组,方法有两种:
方法1:列表发赋值
ass_array=( [index1]=val1 [index2]=val2)
方法2:单独赋值
ass_array[index1]=val1
ass_array[index2]=val2
举例:
declare -A ass_array
ass_array=([book]="10 yuan" [pen]="1 yuan")
1.显示单个数组元素内容
[root@localhost backup]# echo ${ass_array[book]}
yuan
2.查询关联数组所有元素内容
echo ${ass_array[*]}
yuan yuan
3.查询关联数组的索引,在数组前使用!
[root@localhost backup]# echo ${!ass_array[*]}
pen book
4.查询关联数组的元素个数
[root@localhost backup]# echo ${#ass_array[*]}
动态数组生成方法
方法1:
可以使用seq
[root@localhost backup]# numarray=$(seq )
[root@localhost backup]# echo $numarray
方法2:
[root@localhost backup]# echo {..}
这两种定义的动态数组可以直接在循环中调用,例如:
for i in $mumarray;do echo $i;done;
for i in {..};do echo $i;done;
测试二者的效率,可以在其前面加上time
time echo $(seq ) real 0m0.056s
user 0m0.047s
sys 0m0.002s
time echo {..}
real 0m0.030s
user 0m0.023s
sys 0m0.000s
测试10000个元素,显然第二种方法性能会更好。
总结
普通数组和关联数组只是定义的方法不一样,查询的方法是一样的。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
Linux 数组的更多相关文章
- Linux数组array基础
Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...
- Linux数组基础
执行结果:
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- shell脚本变量
既然是变量,自然分变量名和变量值,在使用的时候一定要注意哪些地方需要用变量名,哪些地方需要用变量的值. 自定义变量 shell变量不需要声明,随用随定义,给变量赋值的时候要注意 shell是空格敏感的 ...
- 01 shell编程之变量定义
一.SHELL介绍 ㈠ 什么是shell脚本? 简单来说就是将需要执行的命令保存到文本中,按照顺序执行.它是解释型的,意味着不需要编译. 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= s ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- php数组函数,字符串,linux命令
1>> Linux常用命令一. 文件目录操作命令1. ls命令 命令格式:ls [选项] [目录名] 命令功能:列出目标目录中所有的子目录和文件.2. 命令格式:cd [目录名 ...
- 如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法.前两天在QQ群里讨论awk的时候,无意间又聊起这个话题.机缘巧合之下找到一个思路,特此分 ...
- Linux, Mac下Shell 数组 Array 的修理工
我的测试基本都是在Mac,及Unix环境下测试的,如无特别注明,默认就是Mac 不论你看到这篇随笔是被shell array的奇淫巧技,还是发现shell array就在一对{}里面就可以做那么多勾当 ...
随机推荐
- javascript设计模式(单体模式)
主要内容: js中最基本.应用最广的模式就是单体模式,实现原理是将代码组织为一个逻辑单元,这个逻辑单元中的代码可以通过单一的变更进行访问,确保对象只存在一份实例. 单体模式的特点: 在网页中使用全局变 ...
- 《笨办法学C》笔记之指针
C语言编程主要操作的对象就是指针. 指针从哪里来 指针就是表示内存存储区域的一组数值,使用%p格式化字符串. Linux系统会为程序维护两个临时变量存储位置:栈.堆.栈的空间少,栈通常在用户更高的地址 ...
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误。
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl); req.Us ...
- 菜单的隐藏&显示
//还是先上万一老师的原代码 //隐藏与显示菜单Self.Menu := nil; {隐藏菜单} Self.Menu := MainMenu1; {显示菜单} //初一看到代码,我有点抓不到感觉的意思 ...
- Max Sum
Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub ...
- 使用Application Insights 做分析
Application Insights on Windows Desktop apps, services and worker roles : https://azure.microsoft.co ...
- Qt MVC(模型-视图-代理)
实习刚才是一段时间,公司这边就要求熟悉这个mvc.一般开始都是用tableview,前面的blog我都是使用listview居多,并且相对delegate这个使用的多余model.接下来说下model ...
- How to copy remote computer files quickly to local computer
if we want copy file from VM(Remote VM) to local computer. Always can not easy copy file so easy. no ...
- json_encode中文unicode的问题
近期做微信卡券开发遇到一个问题,创建卡券post数据给服务器时返回data format error, do NOT use json unicode encode (/uxxxx/uxxxx), p ...
- 算法入门笔记------------Day1
1.C语言使用%d显示float值,不会把float值转换为近似的int值,而是显示垃圾值,使用%f显示int值,也不会把该int值转换为浮点值 2.三位数反转:输入一个三位数,分离它的百位,十位和个 ...