Shell 数组

Shell中数据类型不多,比如说字符串,数字类型,数组。数组是其中比较重要的一种,同时Shell中的数组不像JAVA/C,只能是一维数组,没有二维数组;数组元素大小无约束,也无需先定义数组的元素个数;但其索引则像JAVA/C/Python,从0开始,下面是我学习过程的一些总结。

定义:

shell的定义和python相似格式如下

数组的基本操作获取数组

读取某个下标的值:$

获取数组长度:\${#数组名[@/*]} 即\${#数组名[*]}或${#数组名[@]}

求元素长度: \${#数组名[index]}

expr length \$

\$ wc -L

添加数组

直接添加 数组[index]=值 index大于数组长度则在最后添加

利用旧数组创建新的 newArrays=($ 值)

修改数组

直接修改 数组[index]=值

删除数组

删除元素 unset 数组[index]

删除数组 unset 数组

数组的截取

和字符串相似,可以和字符串的方法对比着看。

假设有变量

1. # 号截取,从左到右进行最短匹配查找。

其中 var 是变量名,# 号是运算符,b*o 表示从左边开始查找

即删除 bo

结果是 :ok food

2. ## 号截取,从左到右进行最长匹配查找

即删除boo

结果是 k food

3. %号截取,从右到左进行最短匹配查找

%/* 表示从右边开始,删除第一个 od

结果是:book fo

4. %% 号截取,删从右到左进行最长匹配查找

%% 表示从右边开始,删除最后(最右边边)一个 o0d号

结果是:book f

5. 从左边第几个字符开始,及字符的个数

其中的 0 表示左边第一个字符开始,2 表示字符的总个数。

结果是:1 2

6. 从左边第几个字符开始,一直到结束。

其中的 1表示左边第2个字符开始,一直到结束。

结果是 :3 4

7. 从右边第几个字符开始,及字符的个数

其中的 -2表示右边算起第2个字符开始,2表示字符的个数。

结果是:3 4

8.元素切片

数组替换

$最小匹配替换,每个元素只替换一次

$最大匹配替换,每个元素可替换多次

$最小匹配删除,只删除一个符合规定的元素

$最大匹配删除,可删除多个符合规定的元素

这个和前面相似就不举例子了。

本文来自企鹅号 - java编程学习总结媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学 Web 前端

从零开始学 Web 之 ES6(二)ES5的一些扩展

打印结果:Obj2下面的__proto__指向的原型对象中有Obj1的属性,相当于继承了Obj1属性。

665
来自专栏青玉伏案

窥探Swift之新添数据类型元组与可选值

  今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional)。上面这两个类型是Swift独有的...

1825
来自专栏陈树义

注解的那些事儿(三)| 注解的使用

在上面的 SweetDemo 中会发现我们在使用 @Sweet 注解的时候,手动给 sweetLevel 属性赋值。如果没有赋值,那么会报错。

922
来自专栏学海无涯

12.Any、AnyObject与类型转化

1024
来自专栏小灰灰

SPI框架实现之旅二:整体设计

SPI框架实现之旅二:整体设计 上一篇简单的说了一下spi相关的东西, 接下来我们准备开动,本篇博文主要集中在一些术语,使用规范的约定和使用方式 设计思路 下...

2018
来自专栏禁心尽力

mybatis_常用标签

1、<where></where>标签的作用 可以动态的添加where关键字 可以自动去掉第一个拼接条件的and关键字 1      <wher...

1927
来自专栏柠檬先生

jquery 筛选元素 (2)

.add()   创建一个新的对象,元素添加到匹配的元素集合中。   .add(selector)     selector 一个字符串表示的选择器...

1778
来自专栏数据结构与算法

41:判断元素是否存在

41:判断元素是否存在 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 有一个集合M是这样生成的: (1) 已知 k 是集...

2826
来自专栏全沾开发(huā)

数组的遍历你都会用了,那Promise版本的呢

1894
来自专栏青玉伏案

Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调...

1699

扫码关注云+社区