数组的声明:

  1. 1)array[key]=value # array[0]=one,array[1]=two

复制代码

  1. 2)declare -a array # array被当作数组名

复制代码

  1. 3)array=( value1 value2 value3 ... )

复制代码

  1. 4)array=( [1]=one [2]=two [3]=three ... )

复制代码

  1. 5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身

复制代码

数组的访问:

  1. 1)${array[key]} # ${array[1]}

复制代码

数组的删除

  1. 1)unset array[1] # 删除数组中第一个元素

复制代码

  1. 2)unset array # 删除整个数组

复制代码

计算数组的长度:

  1. 1)${#array}

复制代码

  1. 2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别

复制代码

数组的提取
从尾部开始提取:
array=( [0]=one [1]=two [2]=three [3]=four )
${array[@]:1} # two three four,除掉第一个元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three

子串删除

  1. [root@localhost dev]# echo ${array[@]:0}
  2. one two three four

复制代码

  1. [root@localhost dev]# echo ${array[@]#t*e} # 左边开始最短的匹配:"t*e",这将匹配到"thre"
  2. one two e four

复制代码

  1. [root@localhost dev]# echo ${array[@]##t*e} # 左边开始最长的匹配,这将匹配到"three"

复制代码

  1. [root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

复制代码

  1. [root@localhost dev]# echo ${array[@] %o} # 从字符串的结尾开始最短的匹配
  2. one tw three four

复制代码

  1. [root@localhost dev]# echo ${array[@] %%o} # 从字符串的结尾开始最长的匹配
  2. one tw three four

复制代码

子串替换

  1. [root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

复制代码

第一个匹配到的,会被删除

  1. [root@localhost dev]# echo ${array[@] /o/m}
  2. mne twm three fmur

复制代码

所有匹配到的,都会被删除

  1. [root@localhost dev]# echo ${array[@] //o/m}
  2. mne twm three fmur

复制代码

没有指定替换子串,则删除匹配到的子符

  1. [root@localhost dev]# echo ${array[@] //o/}
  2. ne tw three fur

复制代码

替换字符串前端子串

  1. [root@localhost dev]# echo ${array[@] /#o/k}
  2. kne two three four

复制代码

替换字符串后端子串

  1. [root@localhost dev]# echo ${array[@] /%o/k}
  2. one twk three four

复制代码

Linux shell脚本中 数组的声明:的更多相关文章

  1. 学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  2. Linux shell脚本中shift

    Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). ...

  3. Linux shell脚本中shift的用法说明【转】

    本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...

  4. linux shell脚本中的延时

    linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下:     .sleep : 默认为秒. sleep 1s 表示延迟一秒   sleep 1m 表示延迟一分钟 ...

  5. linux shell脚本中使用expect(脚本打开新终端自动远程连接顺便输一点指令)(巨坑)

    放弃吧 我找了六个小时都没找到可以用的方案(指标题括号里的内容) 给个曲线救国的方法: 现把expect脚本写成一个文件 在另一个shell脚本中调用

  6. Linux shell 脚本中使用 alias 定义的别名

    https://www.cnblogs.com/chenjo/p/11145021.html 核心知识点: 用 shopt 开启和关闭 alias 扩展 交互模式下alias 扩展默认是开启的,脚本模 ...

  7. Linux shell 脚本中变量的数学计算【转】

    本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让 ...

  8. linux shell脚本中的开头#!/bin/bash的含义

    对于linux上需要执行 的shell脚本,通常第一行的内容是 #!/bin/bash 当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 .. 这只是因为在我们常用 ...

  9. shell脚本中数组array常用技巧学习实践

    shell中数组的下标默认是从0开始的 1.将字符串放在数组中,获取其长度 #!/bin/bashstr="a b --n d"array=($str)length=${#arra ...

随机推荐

  1. easyui webuploader 文件上传演示

    webuploader 上传首页 webuploader 上传前页面 webuploader 上传中页面 图就不上传了,状态会编程上传中 webuploader 已上传页面

  2. Android GIS开发系列-- 入门季(7) 利用GeometryEngine坐标转换、计算距离与面积等

    GeometryEngine是Arcgis的重要工具类,利用此工具类,可以计算地图上的距离.面积,将点.线.面转化为Json数据,将Json转化为点线面,坐标转换作用非常强大. 一.坐标转化 将用到方 ...

  3. 1072. Gas Station (30)【最短路dijkstra】——PAT (Advanced Level) Practise

    题目信息 1072. Gas Station (30) 时间限制200 ms 内存限制65536 kB 代码长度限制16000 B A gas station has to be built at s ...

  4. [Java Spring] Spring Annotation Configuration Using XML

    Add context to our application. main/resources/applicationContext.xml: <?xml version="1.0&qu ...

  5. 基于MFC的一个简单计算器

    写一个简单的计算器并不是什么很难的事,主要目的是要通过这个程序来学习和分析其中的核心算法.这个简易计算器的核心部分就是对输入的表达式的正确性判断与求值,其中包括对表达式的解析.中缀表达式转后缀表达式. ...

  6. [Python] How to unpack and pack collection in Python?

    It  is a pity that i can not add the video here. As a result, i offer the link as below: How to unpa ...

  7. paramiko_su_root

    #coding=utf8 import paramiko import time import logging ''' if user root,can not login,must use user ...

  8. WCF探索之旅(五)——WCF与WebService的异同

    前几篇文章我们简单的介绍了WCF以及怎样使用它,今天我们来讨论一下WCF和WebService的异同. 相信大多数同学跟我一样,对于WebService有所了解.并且应该说你是先听说WebServic ...

  9. Size Classes with Xcode 6:为所有的尺寸准备一个Storyboard

    我最喜欢的Xcode6的特性是新的size classes 概念,有了它,我们解决了“我如何能够快速的为那么多不同尺寸屏幕以及方向的设备写app”.他们也让在一个storyboard中创建一个通用的a ...

  10. [CF348B]Apple Tree

    https://www.zybuluo.com/ysner/note/1300249 题面 给一棵大小为\(n\)的树,树的每个叶子节点上有权值. 定义一颗树平衡:对于每一个结点\(u\)的子树都拥有 ...