`

linux shell 数组建立及使用技巧

 
阅读更多

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 的数组已经很强大了,常见的操作已经绰绰有余了。

分享到:
评论

相关推荐

    Linux Shell 数组建立及使用技巧

    以下是对Linux Shell数组建立及使用技巧的详细说明: 1. **数组定义**: 在Shell中,数组的定义简单直观。例如,我们可以这样创建一个包含1到5的数组: ``` a=(1 2 3 4 5) ``` 这里,一对括号定义了一个数组`a...

    Linux shell数组建立及使用技巧

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

    Linux shell数组建立和使用技巧

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

    linux_shell_数组建立及使用技巧.docx

    在Linux Shell中,数组的使用技巧包括创建、读取、赋值、删除以及一些特殊操作,如分片、替换等。 首先,创建数组非常简单。例如: ```bash a=(1 2 3 4 5) ``` 这创建了一个名为`a`的数组,包含五个元素。数组元素...

    新版Linux Shell编程实训(全)20170518.docx

    4. **Shell数组**:教授如何在Shell中定义和使用数组,提供相关案例加深理解。 5. **Shell运算符**:涵盖了Shell的各种运算符,包括算术、关系、布尔、逻辑和字符串运算符,以及文件测试运算符,并通过一个简单的...

    linux的shell脚本的学习,适合初学者使用

    Linux 系统中最常用的 Shell 是 Bash (Bourne Again Shell),这是一种免费且易于使用的 Shell。编写 Shell 脚本时,可以使用任何文本编辑器,例如 NEdit、KEdit、Emacs 或 Vi。Shell 脚本的第一行必须包含以下内容:...

    Linux与Unix Shell编程指南

    《Linux与Unix Shell编程指南》是一本专为Linux系统Shell脚本初学者设计的教程,旨在帮助读者理解和掌握Shell编程的基础知识和高级技巧。在Linux操作系统中,Shell扮演着非常重要的角色,它是用户与系统之间交互的...

    跟老男孩学Linux运维:Shell编程实战

    循环控制及状态返回值的应用实践 / 249第13章 Shell数组的应用实践 / 260第14章 Shell脚本开发规范 / 279第15章 Shell脚本的调试 / 286第16章 Shell脚本开发环境的配置和优化实践 / 297第17章 Linux信号及trap...

    The Linux Command Line 中文版

    本书内容全面,涵盖了Linux操作系统的核心概念、命令行工具的使用方法以及高级编程技巧。其中,中英文对照的方式让读者可以更精准地理解命令及选项的含义,尤其适合希望提高英文技术文档阅读能力的读者。 从提供的...

    LINUX操作系统(电子教案,参考答案)

    主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...

    LINUX网站建设技术指南

    本书介绍如何在Linux下建立,运行并维护站点的综合技术,它适合于有一定的Linux或Linux基本操作基础的网络建立者。 本书从建站的准备工作开始,写到建立功能强大的INTERNET网站,层层深入,涉及到网站建设中所遇到的...

    shell从入门到规范电子文档

    在IT行业中,Shell脚本是Linux/Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户高效地管理和控制系统。本资源包“shell从入门到规范电子文档”提供了全面的Shell学习材料,包括《shell编程...

    嵌入式linux应用程序开发-课程大纲

    - **数组与结构体**:学习数组的定义与使用,理解结构体和联合体的区别及应用场景。 - **预处理与编译调试**:了解C语言的预处理指令,熟悉GCC编译器的使用方法及GDB调试技巧。 - **版本控制**:介绍如何使用CVS进行...

    Shell脚本专家指南

    本书不仅提供了实用的脚本和技巧,还深入探讨了Shell脚本编程的核心概念和技术。下面是对书中各章节涉及的关键知识点的总结。 ### 第一部分 基本脚本编程技术 #### 第1章 shell脚本的错误检测 - **shell跟踪选项**...

    在Linux世界驰骋系列全集

    该系列教程覆盖了多个核心领域,包括Linux系统管理、Shell编程、结构和算法、软件安装与卸载以及Linux重要命令的使用等。 ### Linux系统管理 #### 用户和工作组管理 - **用户账号管理**:通过`passwd`和`shadow`...

    shell教程+工具2016最新整理

    1. **数组**:Shell支持一维数组,如`my_array=(元素1 元素2 ...)`,访问数组元素使用`${my_array[index]}`。 2. **函数**:定义和调用自定义函数,如`function my_func() { ... }`。 3. **命令替换**:`$(command)`...

    RED HAT LINUX 6大全

    本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...

    《linux软件工程师(C语言)实用教程》课件

    8. **调试技巧**:学会使用GDB等调试工具,是定位和解决问题的重要技能。 9. **shell脚本编程**:虽然不是C语言本身的内容,但了解基本的shell脚本编写能够提升在Linux环境下的工作效率。 10. **版本控制系统**:...

Global site tag (gtag.js) - Google Analytics