1.数组定义,shell使用一对括号表示数组,数组元素间用”空格”分隔

# 空数组arr1
arr1=()
# 数组arr2,成员分别是1, 2, 3, 4, 5, 6
arr2=(1 2 3 4 5 6)

2.数组元素读取,格式:${数组名[下标]},下标从0开始,下标为*或@代表整个数组内容

[root@10 ~]# echo ${arr2[0]}
1 [root@10 ~]# echo ${arr2[*]}
1 2 3 4 5 6

3.遍历数组, foreach

for num in ${arr2[*]}; do
echo $num;
done;

4.数组长度,格式:${#数组名[*或@]}

[root@10 ~]# echo ${#arr2[*]}
6

5.赋值,格式:数组名[下标]=值,如果下标不存在,则新增数组元素; 下标已有,则覆盖值

[root@10 ~]# arr2[6]=7
[root@10 ~]# echo ${arr2[*]}
1 2 3 4 5 6 7
[root@10 ~]# arr2[0]=-1
[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7

6.分片,格式:${数组名[*或@]:起始位:长度},截取部分数组,返回字符串,中间用空格分隔;将结果使用“()”,则得到新的切片数组

[root@10 ~]# echo ${arr2[*]:0:3}
-1 2 3
[root@10 ~]# arr3=(${arr2[*]:0:3})
[root@10 ~]# echo ${arr3[*]}
-1 2 3

7.替换元素,格式:${数组名[*或@]/查找字符/替换字符}, 不会修改原数组;如需修改的数组,将结果使用“()”赋给新数组

[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7
[root@10 ~]# echo ${arr2[*]/7/10}
-1 2 3 4 5 6 10
[root@10 ~]# arr4=(${arr2[*]/7/10})
[root@10 ~]# echo ${arr4[*]}
-1 2 3 4 5 6 10

8.删除数组,格式:unset 数组,清除整个数组; unset 数组[下标],清除单个元素


[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7
[root@10 ~]# unset arr2[0]
[root@10 ~]# echo ${arr2[*]}
2 3 4 5 6 7 [root@10 ~]# unset arr2
[root@10 ~]# echo ${arr2[*]} [root@10 ~]#

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

  1. mongoDB的shell数组操作器

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

  2. shell 数组操作

    1. 定义数组: var_array=(one two three four five) 2.常用操作 获取数组长度: ${#var_array[@]} 获取所有数组元素:  ${var_array[ ...

  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. UIImagePickerController的知识点

    1.UIImagePickerController是系统提供的用来获取图片或视频的接口,使用UIImagePickerController类来获取图片的基本步骤如下: a.初始化UIImagePick ...

  2. IOS系列swift语言之课时七

    这下需要掌握的就是类型转换,类的构造器,判断类型,异常,异常的处理,defer,范型,约束加速刷代码 import Foundation /* 类型转换 1.利用类的构造器进行转换 2.系统可能提供一 ...

  3. JQuery 刷新关闭页面

    关闭当前页面,刷新之前页面(js): window.opener.location.href = window.opener.location.href; window.close(); 刷新当前页面 ...

  4. C++函数CString类常用函数

    C++ STL库里有很多与字符串操作相关的函数,熟练应用STL,字符串的处理将变得轻松.自在. 字符串截取函数: 1.CString Left( int nCount ) const;    //从左 ...

  5. MyBatis怎么防止SQL注入

    SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者).[摘自] SQL injection - Wikipedia SQL ...

  6. Sharif University CTF 2016 -- Android App

    很多种的方案: 方案 A: 直接逆向读代码方案 B: 解包,加入debug信息,重新打包,动态调试方案 C: 解包,改代码加入log.i整出flag, 去掉MainActivity里面d=什么也可以, ...

  7. (转)不停止Nginx服务的情况下平滑变更Nginx配置

    在不停止Nginx服务的情况下平滑变更Nginx配置 1.修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确: /u ...

  8. eclipse- Web-app verson=2.5 调整将Dynamic Web Module3.0降为2.5

    如果提示cannot change version of project facet Dynamic Web Module to 2.5 1.把Dynamic Web Module复选框,勾选去掉,点 ...

  9. python学习之——eclipse+pydev 环境搭建

    最终选用 eclipse+pydev,网上相关资料也是极多的~~~ 1.安装python: 2.安装eclipse: 3.eclipse中安装pydev,eclipse中help—>eclipl ...

  10. js中判断true和false的情况