Linux Shell 数组
shell 数组一般都是一维数组。
1. 数组的声明
declare -a arr- 该命令将声明一个数组arr,实际上不声明也可以直接定义数组。
2. 数组的初始化
arr=(1 2 3):该命令定义了一个数组,可以不指明长度。元素之间用空格隔开。arr=([index1]=val1 [index2]=val2 ... [indexn]=valn):利用数组下表定义数组。read -a array:从命令行中读入数组。
3. 数组信息的获取
${arr[index]}:读取数组中下标为index的元素。${arr[@/*]}:读取arr的所有元素。@和*都是所有的意思。${#arr[@/*]}:arr中的元素个数,#代表数目。
4. 数组元素的更新
arr[index]=x:将下标为index的数组元素更新为x,如果index对应元素不存在,则在相应index位置添加元素x。arr=(x y .. z):将数组重新定义,覆盖原数组。
5. 数组的删除
unset arr:删除整个arr数组。unset arr[index]:删除arr中下标为index的数组元素。
6. 数组切片
${arr[@]:start:end}:将数组从下标为start至end切片,返回值为字符串类型,元素之间以空格符分隔。arr_new="(${arr[@]:start:end})":将数组切片后赋给新的数组变量,切片以后对返回字符串左右加上括号即构成了新的数组。
7. 数组元素替换
${arr[@]/原元素x/替换元素y}:将数组中所有原元素x替换为替换元素y,返回一个新的替换后的数组,并不改变原值。arr=${arr[@]/x/y}:替换元素后覆盖原数组,改变原数组。arr_new=${arr[@]/x/y}:将修改后的数组赋给一个新数组,原数组内容不变。
8. 数组的遍历操作
for i in "${array[@]}"
do
#access each element as $i. . .
donefor循环遍历数组。
9. 模拟二维数组
matrix[i][j]=array[n*i+j]:通过一维数组模拟二维数组,按行顺序存储。
参考博客:
Linux Shell 数组的更多相关文章
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- 转:linux shell 数组建立及使用技巧
linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...
- 转载-Linux Shell 数组建立及使用技巧
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...
- linux shell 数组建立及使用技巧
参考网址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell在编程方面比windows 批处理强大太多 ...
- linux shell 数组的使用
引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...
- linux shell数组
from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不 ...
- linux shell数组赋值方法(常用)
http://blog.csdn.net/shaobingj126/article/details/7395161 Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... ...
- Linux shell —— 数组与关联数组
使用 declare -A(declare 的用法请使用 help 进行查看,help declare) 进行声明关联数组变量: $ declare -A fruits_price $ fruits_ ...
- Linux shell之数组
引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...
随机推荐
- CentOS系统IPTables防火墙中FTP规则设置
时间 2016-04-21 10:32:15 虫虫开源 原文 http://www.sijitao.net/2403.html 主题 iptablesFTP防火墙 在设置ftp通过iptables ...
- Linux下安装tensorflow
- windows7设置开机启动方式
打开计算机(资源管理器)(快捷键win+e),输入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 将需要开机启动的软件的快捷 ...
- linux 下安装mongodb
1.初始化docker: -v 设置docker和host共享目录,格式hostPath:dockerContainerPath -p 端口映射 --name,容器名称 cen ...
- 【阿里云配置端口开放】使用 iptables
要知道: 1.目前(16年-12-10)阿里云主机只要有服务开启,所有端口是默认开启的.这样很不好,安全做法是,需要开启外网端口时,由开发人员去配置. 2.想要开放端口,就需要使用iptables命令 ...
- spring mvc 中文参数乱码
最近做项目,springmvc的url中文参数乱码: 请求url: http://localhost:8080/supply/supply_list.htm?productName=测试&is ...
- Python之mmap内存映射模块(大文本处理)说明
背景: 通常在UNIX下面处理文本文件的方法是sed.awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力.关于sed的说明可以看了解sed的工作原理,本文将介绍通过 ...
- cocos2d-x宏定义
1 ccp : The "ccp" prefix means: "CoCos2d Point" //查看: ../cocos2d-x-2.2/cocos2dx/ ...
- 在WebPart中获取Office 365中的未读邮件数
// Create the web request HttpWebRequest request = WebRequest.Create("https://outlook.office365 ...
- PHP新手常见的一些不好习惯(抄的 有待理解)
1.不写注释(是个好习惯,不过也没必要每个语句都要写) 2.不使用可以提高生产效率的IDE工具 3.不使用版本控制 4.不按照编程规范写代码 5.不使用统一的方法 6.编码前不去思考和计划 7.在执行 ...