Linux Shell数组常用操作详解

1数组定义:

declare -a 数组名

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

  1. declare -a array
  2. array=( )

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

2显示数组长度:

  1. [@tc_132_227 dm_pid_day]$ echo ${#array[@]}
  2.  
  3. [@tc_132_227 dm_pid_day]$ echo ${#array[*]}

命令:

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

3读取数组元素:

  1. [@tc_132_227 dm_pid_day]$ echo ${array[]}
  2.  
  3. [@tc_132_227 dm_pid_day]$ echo ${array[]}
  4.  
  5. [@tc_132_227 dm_pid_day]$ echo ${array[]}
  6.  
  7. [@tc_132_227 dm_pid_day]$ echo ${array[*]}
  8.  
  9. [@tc_132_227 dm_pid_day]$ echo ${array[@]}

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

4 对数组元素赋值:

  1. [@tc_132_227 dm_pid_day]$ echo ${array[@]}
  2.  
  3. [@tc_132_227 dm_pid_day]$ array[]=
  4. [@tc_132_227 dm_pid_day]$ echo ${array[@]}
  5.  
  6. [@tc_132_227 dm_pid_day]$ array[]=
  7. [@tc_132_227 dm_pid_day]$ echo ${array[@]}
  8.  
  9. [@tc_132_227 dm_pid_day]$

命令:

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

5删除数组元素:

  1. [@tc_132_227 dm_pid_day]$ unset array[]
  2. [@tc_132_227 dm_pid_day]$ echo ${array[@]}
  3.  
  4. [@tc_132_227 dm_pid_day]$ echo ${#array[*]}
  5.  
  6. [@tc_132_227 dm_pid_day]$ unset array[]
  7. [@tc_132_227 dm_pid_day]$ echo ${array[*]}
  8.  
  9. [@tc_132_227 dm_pid_day]$ echo ${#array[*]}
  10.  
  11. [@tc_132_227 dm_pid_day]$ unset array
  12. [@tc_132_227 dm_pid_day]$ echo ${array[*]}
  13.  
  14. [@tc_132_227 dm_pid_day]$

命令:

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

6数组分片:

  1. [@tc_132_227 dm_pid_day]$ echo ${array[@]}
  2.  
  3. [@tc_132_227 dm_pid_day]$ echo ${array[@]::}
  4.  
  5. [@tc_132_227 dm_pid_day]$ echo ${array[@]::}
  6.  
  7. [@tc_132_227 dm_pid_day]$ echo ${array[@]::}
  1. [@tc_132_227 dm_pid_day]$ arr=(${array[@]::})
  2. [@tc_132_227 dm_pid_day]$ echo ${arr[@]}
  3.  
  4. [@tc_132_227 dm_pid_day]$ echo ${#arr[@]}
  5.  
  6. [@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. window.location.href无法跳转的解决办法

    -------------------接收别人做的SSO单点登录项目,无源码,只是点击登出按钮一直不跳转. 原因是: <a href="javascript:;" oncli ...

  2. lock

    #ifndef lock_h #define lock_h #include <stdint.h> #include <string.h> #include "myd ...

  3. socket.io与redis构建实时推送

    准备工作 1:准备nodejs环境 2:使用npm工具安装 socket.io  npm install socket.io 3:下载客户端socket.io文件 解压附件中的文件 node app. ...

  4. 关于arcengine中geoprocessor使用的困惑

    最近在实验一个小功能,就是用arcengine10.1做一个小程序,将point类型的shp转换为polyline类型的shp文件,用到的工具是pointstoline,但就是在设置input_fea ...

  5. mysql创建用户及授权相关命令

    移步: https://zhidao.baidu.com/question/1576368583039067980.html

  6. 【仿真】Lattice_Diamond_调用Modelsim_仿真

    仿真前的准备工作:在modelsim中添加lattice仿真库:1.去除modelsim安装目录下modelsim.ini的只读属性.2.打开modelsim,更改目录File>Change d ...

  7. C语言简易文法(无左递归)

    <程序> -〉 <外部声明> | <函数定义><外部声明> -〉<头文件> | <变量> | <结构体> <头 ...

  8. T-Shirt 估算法

    T-Shirt Size Estimation (2015-05-11 22:58:18) 转载▼     产出:产品经理会对每一条需求评估上业务影响力的尺寸,如:XXXL 影响一千万人以上或是可以占 ...

  9. FTP Proxy Server

    本文将在Linux环境下实现一个简单的FTP代理服务器,主要内容涉及FTP主动/被动模式和简单的Socket编程. 1. 主动模式和被动模式 FTP有两种模式,即主动模式(Active Mode)和被 ...

  10. #Deep Learning回顾#之2006年的Science Paper

    大家都清楚神经网络在上个世纪七八十年代是着实火过一回的,尤其是后向传播BP算法出来之后,但90年代后被SVM之类抢了风头,再后来大家更熟悉的是SVM.AdaBoost.随机森林.GBDT.LR.FTR ...