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 的数组已经很强大了,常见的操作已经绰绰有余了。
注意:
圆括号的特殊用法:将一个以空格分隔的字符串,转换成一个数组。
例如:
aa="11 12 13 14 15"
bb=($aa)
echo ${bb[@]}
11 12 13 14 15
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
分享到:
相关推荐
以下是对Linux Shell数组建立及使用技巧的详细说明: 1. **数组定义**: 在Shell中,数组的定义简单直观。例如,我们可以这样创建一个包含1到5的数组: ``` a=(1 2 3 4 5) ``` 这里,一对括号定义了一个数组`a...
linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo@centos5 ~]$ a=(1 ...
linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo@centos5 ~]$ a=(1 ...
在Linux Shell中,数组的使用技巧包括创建、读取、赋值、删除以及一些特殊操作,如分片、替换等。 首先,创建数组非常简单。例如: ```bash a=(1 2 3 4 5) ``` 这创建了一个名为`a`的数组,包含五个元素。数组元素...
4. **Shell数组**:教授如何在Shell中定义和使用数组,提供相关案例加深理解。 5. **Shell运算符**:涵盖了Shell的各种运算符,包括算术、关系、布尔、逻辑和字符串运算符,以及文件测试运算符,并通过一个简单的...
Linux 系统中最常用的 Shell 是 Bash (Bourne Again Shell),这是一种免费且易于使用的 Shell。编写 Shell 脚本时,可以使用任何文本编辑器,例如 NEdit、KEdit、Emacs 或 Vi。Shell 脚本的第一行必须包含以下内容:...
《Linux与Unix Shell编程指南》是一本专为Linux系统Shell脚本初学者设计的教程,旨在帮助读者理解和掌握Shell编程的基础知识和高级技巧。在Linux操作系统中,Shell扮演着非常重要的角色,它是用户与系统之间交互的...
循环控制及状态返回值的应用实践 / 249第13章 Shell数组的应用实践 / 260第14章 Shell脚本开发规范 / 279第15章 Shell脚本的调试 / 286第16章 Shell脚本开发环境的配置和优化实践 / 297第17章 Linux信号及trap...
本书内容全面,涵盖了Linux操作系统的核心概念、命令行工具的使用方法以及高级编程技巧。其中,中英文对照的方式让读者可以更精准地理解命令及选项的含义,尤其适合希望提高英文技术文档阅读能力的读者。 从提供的...
主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...
本书介绍如何在Linux下建立,运行并维护站点的综合技术,它适合于有一定的Linux或Linux基本操作基础的网络建立者。 本书从建站的准备工作开始,写到建立功能强大的INTERNET网站,层层深入,涉及到网站建设中所遇到的...
在IT行业中,Shell脚本是Linux/Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户高效地管理和控制系统。本资源包“shell从入门到规范电子文档”提供了全面的Shell学习材料,包括《shell编程...
- **数组与结构体**:学习数组的定义与使用,理解结构体和联合体的区别及应用场景。 - **预处理与编译调试**:了解C语言的预处理指令,熟悉GCC编译器的使用方法及GDB调试技巧。 - **版本控制**:介绍如何使用CVS进行...
本书不仅提供了实用的脚本和技巧,还深入探讨了Shell脚本编程的核心概念和技术。下面是对书中各章节涉及的关键知识点的总结。 ### 第一部分 基本脚本编程技术 #### 第1章 shell脚本的错误检测 - **shell跟踪选项**...
该系列教程覆盖了多个核心领域,包括Linux系统管理、Shell编程、结构和算法、软件安装与卸载以及Linux重要命令的使用等。 ### Linux系统管理 #### 用户和工作组管理 - **用户账号管理**:通过`passwd`和`shadow`...
1. **数组**:Shell支持一维数组,如`my_array=(元素1 元素2 ...)`,访问数组元素使用`${my_array[index]}`。 2. **函数**:定义和调用自定义函数,如`function my_func() { ... }`。 3. **命令替换**:`$(command)`...
本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...
8. **调试技巧**:学会使用GDB等调试工具,是定位和解决问题的重要技能。 9. **shell脚本编程**:虽然不是C语言本身的内容,但了解基本的shell脚本编写能够提升在Linux环境下的工作效率。 10. **版本控制系统**:...