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 条评论
登录 后参与评论

相关文章

来自专栏河湾欢儿的专栏

第五节正则

912
来自专栏ml

nyoj-----前缀式计算

前缀式计算 时间限制:1000 ms  |           内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我...

3446
来自专栏desperate633

LintCode 字符大小写排序题目分析代码

851
来自专栏PHP在线

PHP部分字符串函数汇总

我们大家知道无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要。PHP给我们提供了大量的字符串操作函数,功能强大,使用也比较简单,这里为大家总结九类字...

3486
来自专栏大前端开发

ES6特性之:解构

解构(destructuring assignment), 也称解构赋值,这种语法可以方便的将数组元素或对象属性赋成新的变量。

682
来自专栏desperate633

LintCode 字符大小写排序题目代码

小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。 样例 给出"abAcD",一个可能的答案为"acbAD"

811
来自专栏Java帮帮-微信公众号-技术文章全总结

第四天 数组【悟空教程】

2129
来自专栏决胜机器学习

从机器学习学python(二) ——iteritems、itemgetter、sorted、sort

从机器学习学python(二)——iteritems、itemgetter、sorted、sort (原创内容,转载请注明来源,谢谢) 一、iteritems...

3777
来自专栏Petrichor的专栏

python: dir函数

1042
来自专栏GreenLeaves

JavaScript引用类型之Object类型

在JavaScript中大多数的引用类型都是Object的实例,Object类型也是使用最多的类型! 创建Object类型实例的方式有两种,下面分别来分析一下:...

2155

扫码关注云+社区

领取腾讯云代金券