http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
这个博客的shell编程的资料很全面,推荐一下
linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。
1.数组定义
可以使用declare -a array #array将被视为数组
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1
一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值(基本的读取和赋值同c中的基本一样)
[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 的数组已经很强大了,常见的操作已经绰绰有余了。
分享到:
相关推荐
在编程领域,动态数组是一种非常常见且实用的数据结构,它允许我们在运行时调整数组的大小。这个主题“zz.zip_动态数组输出相反”涉及到利用动态数组处理数字序列,并输出其相反的结果。在这个场景中,我们可以深入...
### Linux系统下的Shell编程知识点详解 #### 一、Shell编程概览 Shell编程是一种重要的Linux系统管理技能,它允许用户通过编写脚本来自动化常见的任务,提高工作效率。在Linux环境中,Shell既是用户与操作系统交互...
Shell脚本编程基础知识点 Shell 脚本编程是 Linux 操作系统中的一种自动化工具,允许用户通过编写脚本来自动执行重复的任务。下面是 Shell 脚本编程的基础知识点: 变量 * 变量声明:在 Shell 中,变量可以通过...
Shell脚本编程是一种在Linux和Unix系统中广泛使用的自动化工具,它允许用户通过编写一系列命令来执行复杂的任务,从而提高工作效率。Shell脚本是通过Shell解释器执行的,这个解释器接收用户输入的命令并执行。以下是...
### Python算法数据结构课程知识点:数组与动态数组 ...数组是编程中最常用的数据结构之一,掌握数组的使用对于学习更复杂的算法和数据结构非常重要。希望本课程能帮助大家更好地理解和使用数组。
base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz
实验报告涵盖了四个关键部分:UNIX入门、vi编辑器、UNIX文件系统和UNIX Shell编程。以下是对每个部分的详细解释: **实验一:UNIX入门** 1. **UNIX操作系统历史**:UNIX系统起源于1960年代末,由贝尔实验室的Ken ...
### Shell脚本编程知识点概述 #### 一、Shell脚本的重要性 - **提高效率**:Shell脚本能够显著提升用户操作以及系统管理员进行系统管理的效率。 - **自动化任务**:通过编写脚本来自动化日常任务,减少重复劳动。 -...
//说明:只有动态数组才能resize, 还有将来的shared_array, zz 6.赋值: da3 = db3;; sa1 = sb1;; da1 = db1;; 静态数组维度不一样不能赋值,否则会引起编译错误 动态数组和丢失了静态大小成为了...
在Shell编程中,特殊字符扮演着非常重要的角色,它们能够帮助开发者更加高效地完成脚本编写、控制流程以及处理输入输出等任务。下面将详细介绍Shell编程中的一些关键特殊字符及其用途。 #### 1. **符号类特殊字符**...
【高级编程培训-编程语句入门Part 3.pptx】是关于海克斯康(PC-DMIS)软件的脱机编程高级培训资料,重点介绍了编程语句的基础知识。这份讲义涵盖了多个关键概念,包括赋值功能、注释、流程控制语句以及特征赋值等,...
根据提供的文件内容,以下是关于腾控科技T920可编程控制器的知识点: 一、T920可编程控制器概述 腾控科技T920可编程控制器是T900系列PLC中的一款产品,具有以下特点: - 使用最大频率72MHz的ARM工业级CPU。 - 配置...
【VC++动态链接库(DLL)编程深入浅出】 动态链接库(DLL)在Windows编程中扮演着重要的角色,它是一种代码和数据共享的方式。DLL文件可以被多个应用程序同时使用,减少了内存占用,并且允许开发者在不修改已发布程序的...
该项目为“studyjava-zz”设计源码,深入探索Java编程新视野,共计包含549个文件,涵盖209个Java源代码文件、74个Git忽略文件、70个项目配置文件、68个classpath文件、66个偏好设置文件、25个Markdown文档、16个XML...
2. **机器人编程**:比赛可能会涉及到各种编程语言,如C++、Python或RoboLogix,用于编写控制机器人的指令。编程能力是实现机器人自动化任务的关键。 3. **传感器技术**:机器人感知环境主要依赖于各种传感器,如...
函数 zz 使用循环交换数组元素,实现矩阵转置。 优点 * 使用函数将复杂的计算逻辑封装起来,提高代码的可读性和维护性。 * 使用循环可以高效地实现矩阵转置。 * 输出结果可以直观地显示转置后的矩阵。 缺点 * ...
ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB
wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。
5. 算法文档、范文、模板和素材对学习算法以及编程实践有着重要作用。它们不仅提供了理论知识,而且提供了实际操作的示例,有助于加深理解并快速上手。 6. 软件和插件的分类和选择对于实现特定功能至关重要。了解和...