`
yuanfen860913
  • 浏览: 119806 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

假设有数组名为ARR,则初始化的一种方法是:

ARR=(2 4 6 8)

其中,括号里的各项使用空格来分隔。

遍历数组的方法为:

for NUM in${ARR[*]}

do

echo $NUM

done

其中,每一次循环过程中,数组里的当前元素均被保存到NUM变量中,使用即可。

分享到:
评论

相关推荐

    linux shell实现求一个多维数组中的最大和最小值

    本文将详细介绍如何使用 Linux Shell 来找出一个包含多个一维数组的多维数组中的最大值和最小值。 #### 核心知识点: 1. **Shell 数组的定义与使用** 2. **Shell 脚本中的循环结构** 3. **条件判断与变量赋值** 4....

    Shell脚本数组操作小结

    在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为: 代码如下:数组名=(值1 值2 … 值n) 例如: 代码如下: array_name=(value0 value1 value2 value3) 或者 代码如下: array_...

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

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

    ksh 基础知识 shell简介 变量数组 控制结构 函数 调试

    **Shell数组** Shell也支持数组变量,可以存储多个值。例如: ```bash my_array=(apple orange banana) ``` 访问数组元素: ```bash echo ${my_array[0]} # 输出 apple ``` 增加数组元素: ```bash my_array+=(...

    Shell脚本数组用法小结

    Shell脚本中的数组是一种非常实用的数据结构,它允许我们存储多个相关的值,并通过单个变量名来管理和操作这些...在实际应用中,根据需求选择合适的声明方式、遍历方法以及数组操作将极大地提升脚本的灵活性和实用性。

    linux shell 中数组的定义和for循环遍历的方法

    通过理解这些基本概念和操作,你就能在Linux Shell脚本中有效地使用数组,并进行遍历。记住,实践是学习的最佳途径,尝试编写一些示例脚本来巩固你的知识。在日常工作中,积累和整理这样的知识笔记,对于提高工作...

    Shell动态生成数组的多种方法

    在Linux Shell编程中,动态生成数组是一项常见的任务,尤其在处理数据集合或执行循环操作时。本文主要介绍三种方法来动态创建数组,包括while循环法、for循环法以及使用seq命令生成数组法。 首先,我们来看while...

    shell中的数组操作小结和冒泡排序实现脚本分享

    shell数组介绍: 代码如下: //数组变量定义: $ arr=(1 3 6 8 2 5 9 0 7 4) // 默认获取第一个元素 $ echo $arr // 通过下标访问,下面取的数组第二个元素,shell数组下标是从0开始 $ echo ${arr[1]}  // 访问整个...

    Shell 数组与关联数组详解及实例代码

    关联数组的使用使得在Shell脚本中处理复杂的数据结构成为可能,比如存储和操作具有特定标识符的数据,例如用户名、城市名等。通过索引,我们可以方便地对数据进行查找、修改和删除,极大地提高了编程的灵活性。 在...

    Linux shell数组循环的实例详解

    在Linux系统中,Shell脚本是一种强大的自动化...在编写脚本时,记得根据实际需求选择适合的数组操作和循环控制,以便更有效地处理数据。如果你在实践中遇到任何问题,欢迎在相关论坛或社区提问,与其他开发者交流讨论。

    shell数组操作简明总结

    本文就shell数组来做一个小的总结。在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及。这里包括数组的复制,计算,删除,替换。 1.数组的声明: 代码如下:1)array[key]=value ...

    linux shell数组深入学习理解

    Linux Shell数组是Linux系统中处理一组相关数据的重要工具,它允许你存储多个值在一个单一的变量名下。本文将深入探讨Linux Shell数组的使用方法,包括声明、赋值、访问和遍历数组,以及如何在实际场景中应用数组,...

    Linux shell数组建立和使用技巧

    下面是个人在使用时候,对它在数组方面一些操作进行的总结。  1.数组定义  [chengmo@centos5 ~]$ a=(1 2 3 4 5)  [chengmo@centos5 ~]$ echo $a  1  一对括号表示是数组,数组元素用“空格”符号分割开。...

    Linux Shell 数组建立及使用技巧

    了解这些基本的Linux Shell数组操作技巧,可以帮助你编写更复杂的Shell脚本,实现更高效的自动化任务。在实际应用中,数组能有效地管理和处理大量数据,提高工作效率。在编写脚本时,熟练运用数组会使代码更简洁,...

    C语言中文网shell脚本教程

    Shell命令在Linux系统中是操作系统与用户交互的接口,它们是可执行的程序,可以执行特定的操作。了解命令的选项和参数至关重要,这些参数用于定制命令的行为。例如,`1.7Shell命令的选项和参数在本质上到底是什么?...

    PowerShell数组的一些操作技巧

    PowerShell数组的使用例子,PowerShell中使用逗号给数组赋值,数组中可以存放各种不同类型的数据值。 PowerShell中使用逗号给数组赋值,数组中可以存放各种不同类型的数据值。 数组的赋值 先看下面一个简单的例子: ...

    Linux Shell 数组的创建及使用技巧

    下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用“空格”符号分割开。 2.数组读取与...

Global site tag (gtag.js) - Google Analytics