1. 定义数组:

  var_array=(one two three four five)

2.常用操作

  获取数组长度: ${#var_array[@]}

  获取所有数组元素:  ${var_array[@]} or  ${var_array[*]}

  获取第一个数组元素:${var_array[0]}   数组下标从 0 开始。

  数组元素字符替换:${var_array[@]/x/y}  #最少替换,用y替换x

  数组元素字符替换:${var_array[@]//x/y}  #最多替换,用y替换x

  数组元素删除: "#"  每个元素,从左向右进行最短匹配  ,"##" 最长匹配

  数组元素删除: "%"  每个元素,从右向左进行最短匹配  ,"%%" 最长匹配

例子:

#!/bin/bash

## 定义一个空数组
var_array=() ## 数组赋值,数组下标从 开始
var_array=(china beijing shanghai sshenzhen nanjingg) ## 打印全部数组元素 ${var_array[@]} 或者 ${var_array[×]}
echo "数组元素是:${var_array[@]}" ## 打印数组元素个数
echo "数组总数是:${#var_array[@]}" ## 数组遍历
for ((i=;i < ${#var_array[@]}; i++))
do
echo "第${i}个数组元素是: ${var_array[i]}"
done ## 数组切片
echo "打印第二个元素之后的所有元素:"${var_array[@]:}""
echo "打印第一个元素到第三个元素:${var_array[@]:0:3}"
echo "打印倒数第二个元素开始打印,打印2个元素:${var_array[@]:(-2):2}" ## 根据现有数组,得到一个新数据
new_var_array=()
new_var_array=${var_array[@]::}
echo "新数组是:${new_var_array[@]}" ## 数据替换
## ${array[@]/x/y} 最小匹配替换,每个元素只替换一次
## ${array[@]//x/y} 最大匹配替换,每个元素可替换多次 echo "将i替换xo,一个元素只替换一次:${var_array[@]/i/xo}"
echo "将i替换xo,一个元素替换多次次:${var_array[@]//i/xo}"
echo "将i替换空,一个元素替换多次次:${var_array[@]//i/}" ## 数组删除
## "#" 每个元素,从左向右进行最短匹配
## "##" 每个元素,从左向右进行最长匹配
## "%" 每个元素,从右向左进行最短匹配
## "%%" 每个元素,从右向左进行最长匹配 echo "将s开头的字符,单个删除:${var_array[@]#s*}"
echo "将s开头的字符,全部删除:${var_array[@]##s*}"
echo "将s开头的字符,全部删除:${var_array[@]%*g}"
echo "将s开头的字符,全部删除:${var_array[@]%%*g}"

结果截图:

shell 数组操作的更多相关文章

  1. mongoDB的shell数组操作器

    http://www.2cto.com/database/201304/205024.html mongoDB数组操作器   $push会向数组末尾加入一个元素,如果数组不存在,则会创建这个数组. 增 ...

  2. shell数组操作

    1.数组定义,shell使用一对括号表示数组,数组元素间用"空格"分隔 # 空数组arr1 arr1=() # 数组arr2,成员分别是1, 2, 3, 4, 5, 6 arr2= ...

  3. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  4. Shell系列(38)- 数组操作→取值、遍历、替换、删除

    引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...

  5. Linux Shell 数组

    shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ...

  6. Mongodb DB shell数据操作

    shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help(); db.yo ...

  7. shell字符串操作之cut---实现字符串截取

    shell中(字符串截取) cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切 ...

  8. shell数组应用

    引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...

  9. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

随机推荐

  1. 聊天系统 websocket 直播聊天

    websocket http://kai.yilaizhibo.com/js/controller.js http://kai.yilaizhibo.com/js/controller.js $(fu ...

  2. 《深入理解Linux内核》阅读笔记 --- Chapter 2 Memory Addressing

    1.logical address = segment identifier (16bits) + offset (32bits) segment selector其实就是GDT或者LDT的索引,其中 ...

  3. 从库函数解析STM32地址映射

    STM32的存储映射是靠基地址和地址偏移实现的. 32位的M3有4GB的寻址空间,其中用于片上外设的有512MB,基地址为0x40000000. M3各外设基地址,包括片上外设.片上静态RAM和FLA ...

  4. ZOJ 2770 Burn the Linked Camp 差分约束

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemCode=2770 Burn the Linked Camp Time Limi ...

  5. (2.2)学习笔记之mysql基础操作(登录及账户权限设置)

    本系列学习笔记主要讲如下几个方面: 本文笔记[三:mysql登录][四:账户权限设置][五:mysql数据库安全配置] 三.mysql登录 常用登录方式如下: 四.账户权限设置 (4.1)查看用户表, ...

  6. Canvas:绘制路径

    Canvas:绘制路径 绘制路径 图形的基本元素是路径.路径是[通过不同颜色和宽度的线段或曲线相连形成的不同形状的]点的集合.一个路径,甚至一个子路径,都是闭合的. 使用路径绘制图形需要一些额外的步骤 ...

  7. PolyBase--整合SQLServer和Hadoop

    我们一直强调,大数据和传统的关系数据库并不对立,未来公司的的业务将会是大数据和关系型数据库的整合.微软的PolyBase打响了SQL Server和Hadoop整合的第一枪. 在2012年度的SQL ...

  8. $python正则表达式系列(3)——正则内置属性

    本文主要总结一下python正则的一些内置属性的用法. 1. 编译标志:flags 首先来看一下re.findall函数的函数原型: import re print('[Output]') print ...

  9. Jconsle

    1. jconsole 远程连接: JConsole很好用,可以解决很多疑难杂症.但远程连接需要设置一下Java opt才可以使用.以下是步骤: 1). 在java opt下添加如下内容: 如果是无须 ...

  10. xshell如何同时打开多个标签

    查看标签>>>>>回话选项卡>>>>>> 打钩即可