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. php 汉字验证码

    代码: captcha.php <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetrueco ...

  2. SEO优化 给a标签添加rel="nofollow"

    为什么要使用nofollow标签? 我们使用nofollow标签的目的是很明确的,就是减少蜘蛛对页面上垃圾链接的爬行和传递权重,或者减少蜘蛛对页面上“无用”链接的爬行和传递链接权重. 这里所说的无用是 ...

  3. scrapy 原理,结构,基本命令,item,spider,selector简述

    原理,结构,基本命令,item,spider,selector简述 原理 (1)结构 (2)运行流程 实操 (1) scrapy命令: 注意先把python安装目录的scripts文件夹添加到环境变量 ...

  4. python线程池/进程池创建

    进程池 import time from concurrent.futures import ProcessPoolExecutor def task(arg): time.sleep(2) prin ...

  5. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  6. shell脚本调用传参【转载】

    转自:https://www.cnblogs.com/cisum/p/8010658.html 1.直接使用$0,$1,$2,$3 $0是脚本的名字,就是按顺序来 #!/bin/bash # auth ...

  7. [StringUtil ] isEmpty VS isBlank

    昨天才意识到这两个的存在. Blank(空字符串 blank) StringUtils.isNoneBlank(null) = false StringUtils.isNoneBlank(null, ...

  8. HTML 2 (Day49)

    一.table标签 http://www.cnblogs.com/shaojiafeng/p/7516741.html 二.form 表单属性 action:表单提交到哪.一般指向服务端一个程序,程序 ...

  9. Python 一行代码实现并行

    需求 给定一个list   针对list 中每个元素执行一定的操作(这个操作很费时间,例如爬数据的时候调用某个网站的接口),返回操作后的list 例如 给定 1-10个数,在每个数字后面加个字母a 方 ...

  10. JAVA发送HttpClient

    http://bijian1013.iteye.com/blog/2310211 在发送HTTP请求的时候会使用到POST和GET两种方式,如果是传送普通的表单数据,我们直接将参数到一个Key-val ...