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. Java 之Object 类

    Object 类: 所有类的根类, 是不断向上抽取而来, 具备着所有对象都具备的共性内容. 常用共性方法 boolean equals(Object obj) : 判断两个对象是否相等. 默认比较的是 ...

  2. PBR工作流

    目标是让substance效果和unity效果一致 分2步: 1.完成1个shader,效果和standard完全一致,抛去不需要的功能 2.使用新的shader,在substance里替代原有的渲染 ...

  3. python基于yield实现协程

    def f1(): print(11) yield print(22) yield print(33) def f2(): print(55) yield print(66) yield print( ...

  4. Tachyon架构剖析--王家林老师

  5. Cpython支持的进程与线程(Day33)

    一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. mul ...

  6. 基于WinIO 3.0实现驱动级键盘模拟输入

    基于WinIO 3.0实现驱动级键盘模拟输入 一个业务场景需要使用驱动级的键盘模拟,折腾了2天,总结一下,为后人节省时间. 限制条件: 1.需要真实PC机,虚拟机不行 2.仅支持PS/2 键盘(指外接 ...

  7. PAT 甲级真题

    1019. General Palindromic Number 题意:求数N在b进制下其序列是否为回文串,并输出其在b进制下的表示. 思路:模拟N在2进制下的表示求法,“除b倒取余”,之后判断是否回 ...

  8. (转)HttpWebRequest以UTF-8编码写入内容时发生“Bytes to be written to the stream exceed the Content-Length bytes size specified.”错误

    from:http://www.cnblogs.com/Gildor/archive/2010/12/13/1904060.html HttpWebRequest以UTF-8编码写入内容时发生“Byt ...

  9. directorjs和requirejs和artTemplate模板引擒建立的SPA框架

    分为4块:A : index.html壳子.    加载B  init-config.js,   加载D  header.html模板B : init-config.js 个人信息+路由配置+权限+渲 ...

  10. python之路 线程、进程、协程、队列、python-memcache、python-redis

    一.线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. #!/usr/bin/env python # -*- coding:utf-8 -*- import threa ...