Linux Shell数组常用操作详解

1数组定义:

declare -a 数组名

数组名=(元素1 元素2 元素3 )

 declare -a array
array=( )

数组用小括号括起,数组元素之间用空格分开

2显示数组长度:

[@tc_132_227 dm_pid_day]$ echo ${#array[@]}

[@tc_132_227 dm_pid_day]$ echo ${#array[*]}

命令:

${#数组名[@或*]} 获取数组长度,若数组无元素,输出空

3读取数组元素:

[@tc_132_227 dm_pid_day]$ echo ${array[]}

[@tc_132_227 dm_pid_day]$ echo ${array[]}

[@tc_132_227 dm_pid_day]$ echo ${array[]}

[@tc_132_227 dm_pid_day]$ echo ${array[*]}

[@tc_132_227 dm_pid_day]$ echo ${array[@]}
    

命令:
${数组名[下标]},数组下标从0开始,且下标为*或者@符号时,读取整个数组元素

4 对数组元素赋值:

[@tc_132_227 dm_pid_day]$ echo ${array[@]}

[@tc_132_227 dm_pid_day]$ array[]=
[@tc_132_227 dm_pid_day]$ echo ${array[@]} [@tc_132_227 dm_pid_day]$ array[]=
[@tc_132_227 dm_pid_day]$ echo ${array[@]} [@tc_132_227 dm_pid_day]$

命令:

数组名[下标]=元素 进行赋值  若下标不存在,则数组会自动增加一个新的元素

5删除数组元素:

[@tc_132_227 dm_pid_day]$ unset array[]
[@tc_132_227 dm_pid_day]$ echo ${array[@]} [@tc_132_227 dm_pid_day]$ echo ${#array[*]} [@tc_132_227 dm_pid_day]$ unset array[]
[@tc_132_227 dm_pid_day]$ echo ${array[*]} [@tc_132_227 dm_pid_day]$ echo ${#array[*]} [@tc_132_227 dm_pid_day]$ unset array
[@tc_132_227 dm_pid_day]$ echo ${array[*]} [@tc_132_227 dm_pid_day]$

命令:

unset 数组名[下标]可以删除数组元素,  unset 数组名  删除整个数组

6数组分片:

[@tc_132_227 dm_pid_day]$ echo ${array[@]}

[@tc_132_227 dm_pid_day]$ echo ${array[@]::}

[@tc_132_227 dm_pid_day]$ echo ${array[@]::}

[@tc_132_227 dm_pid_day]$ echo ${array[@]::}
  
[@tc_132_227 dm_pid_day]$ arr=(${array[@]::})
[@tc_132_227 dm_pid_day]$ echo ${arr[@]} [@tc_132_227 dm_pid_day]$ echo ${#arr[@]} [@tc_132_227 dm_pid_day]$

命令:

${数组名[@|*]:起始下标:长度} 会将原数组分片,并返回以“空格”为分隔符的一个字符串,若对该字符串外加"()“,则会得到一个新的分片数组

Linux Shell数组常用操作详解的更多相关文章

  1. Linux and Oracle常用目录详解

    目录详解 目录 内容 / 根目录,一切从这里开始 /bin 包含系统启动和运行所必需的二进制文件(程序) /boot 包含Linux内核.最初的RAM磁盘映像(系统启动时,驱动程序会用到),以及启动加 ...

  2. 【Git使用详解】Egit的常用操作详解

    常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相 ...

  3. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  4. pandas常用操作详解——pd.concat()

    concat函数基本介绍: 功能:基于同一轴将多个数据集合并 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=Fa ...

  5. pandas常用操作详解——pandas的去重操作df.duplicated()与df.drop_duplicates()

    df.duplicated() 参数详解: subset:检测重复的数据范围.默认为数据集的所有列,可指定特定数据列: keep: 标记哪个重复数据,默认为'first'.1.'first':标记重复 ...

  6. pandas常用操作详解——info()与descirbe()

    概述 df.info():主要介绍数据集各列的数据类型,是否为空值,内存占用情况: df.describe(): 主要介绍数据集各列的数据统计情况(最大值.最小值.标准偏差.分位数等等). df.in ...

  7. Linux常用操作详解

    第1章 Linux命令基础 1.1 习惯 操作前备份,操作后检查 1.2 简单目录结构 一切从根开始,与windows不同 1.3 规则 [root@znix ~]# [用户名@主机名 你在哪]# 1 ...

  8. Linux运维常用命令详解

    1.ls 文件属性:  -:普通文件  d:目录文件  b:块设备  c:字符设备文件  l:符号连接文件  p:命令管道  s:套接字文件  文件权限: 9位数字,每3位一组  文件硬链接次数  文 ...

  9. Linux的vi常用命令详解

    1.vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:   ...

随机推荐

  1. eclipse导入外部jar包

    首先在项目下创建一个文件夹,保存我们的jar包. 在项目名上右击,依次点击[New]-->[Floder],打开新建文件夹窗口输入文件夹名称[lib],点击[ok].我们通常在lib文件夹中存放 ...

  2. 安卓自动化测试:Android studio 自带的 Record Espresso Test || [ Appium & (Android studio || Python|| Eclipse ) ]

    1.Android studio 自带的 Record Espresso Test  https://developer.android.com/studio/test/espresso-test-r ...

  3. Java JDK 环境变量配置

    1:环境 JDK1.7.0 WIN7 2:安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹 ...

  4. 初始化git远程仓库步骤

    Git global setup git config --global user.name "bingo" git config --global user.email &quo ...

  5. 数组求和,计算给定数组 arr 中所有元素的总和

    一,题目分析:可以使用数组的归并方法计算,reduce和reduceRight.二者作用几乎相同.只是归并方向相反.reduce和reduceRight都可以接收两个参数.第一个是在每一项上调用的函数 ...

  6. 关于C#的内存释放问题

    最近在做一个要循环读取xml文件的功能. 想法是读取一个文件,释放一个文件,这样就不会消耗太多内存. 结果运行起来内存不停涨,最后内存溢出.用gc,disponse,异步都没有用. 后来改成relea ...

  7. Asp.net MVC 数据注解与验证

    数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中(有些特性定义在其他名称空间中),它们提供了服务器端验证的功能,当在模型的属性上使用这些特性时,框 ...

  8. jquery 显示弹出层可利用动画效果

    1 show()方法和hide()方法 $("selector").show()  从display:none还原元素默认或已设置的display属性$("selecto ...

  9. JQuery ajax 异步传一个数组到 .net后台

    可能使用JQuery Ajax传值到后台一个字符串,或者序列化后的表单大家都使用过,但是某些项目,需要我们一次传值一个数组到后台,这个时候有什么好的办法呢? 1.JS将数组转换为一个字符串,然后传值到 ...

  10. C# Lamada表达式

    Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托 ...