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. 超级文件搜索器(SuperSearch)

    写了个工具,各个分享渠道上传太难了,在这里分享给大家吧! 中文名称:超级文件搜索器 英文名称:  SuperSearch 适用对象:硬盘里文件达到数万至数千万级的用户 运行环境:WindowXP,Wi ...

  2. PC小技巧

    一.如何在office 2010中安装 Microsoft Office Document Imaging 我用的是office 2010版本,如下操作可以把照片转换成文本:第一步:使用Microso ...

  3. Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况

    转自:http://blog.jqian.net/post/dynamo.html Dynamo是Amazon开发的一款高可用的分布式KV系统,已经在Amazon商店的后端存储有很成熟的应用.它的特点 ...

  4. C# in VS

    1. DllImport是System.Runtime.InteropServices命名空间下与与非托管相关的一个属性类,负责导出从非托管的dll中导出函数信息,导出的函数在声明时必须有extern ...

  5. C语言 多线程测试

    1.CreateThread 在主线程的基础上创建一个新线程 2.WaitForMultipleObjects 主线程等待子线程 3.CloseHandle 关闭线程 // testThread.cp ...

  6. Get Script Path in Shell

    #!/usr/bin/bashdir_old=$(pwd)absolute_script_path=$(cd $(dirname $0) && pwd)relative_script_ ...

  7. iOS网络推送消息

    在iOS项目的appdelegate.m文件中: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  8. Socket Receive 避免 Blocking

    我们知道 Socket Blocking 属性默认true . 表明Socket 处于同步调用 , Connect , 或 Send , Receive 需等待动作 完成才能继续执行. 有一种应用场景 ...

  9. Visro 应用的前端模板工具介绍 -JsRender

    1.什么是JsRender: JsRender是一款JavaScript模版引擎,是具有简单直观,功能强大,可扩展的,早期版本是基于JQUERY 写的,后来作者重构了,就不再依赖JQUERY了. 它的 ...

  10. 在PHP中如何实现在做了么个操作后返回到指定页面

    我们经常会碰到类似用户在没有登录的情况下进行提问.评论,需要用户登录后返回刚才浏览的网页,这种功能用cookie保存当前url地址来实现.我用的是jquery,读者需要懂点jquery中的ajax请求 ...