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

相关文章

来自专栏土豆专栏

Java面试之数据类型(一)

封装类是引用类型,基本类型在传递参数的时候都是按值传递,而封装类型是按引用传递的(其实引用也是按值传递的,但是传递的是对象的地址)

1182
来自专栏技术之路

c++ 数组

数组就是一组元素的内存位置,各个内存位置可以存储相同数据类型的数据项,而我们可以用相同的变量名引用所有的内存地址 初始化数组 int myA[5]={1,2,3...

1955
来自专栏机器学习实践二三事

python基础----函数作为返回值

从一个例子讲起 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 还是考虑这个问题:对可变参数进行求和 看了上一讲的已经知道,可以使用’*’...

2065
来自专栏开发与安全

从零开始学C++之STL(八):函数对象、 函数对象与容器、函数对象与算法

一、函数对象 1、函数对象(function object)也称为仿函数(functor) 2、一个行为类似函数的对象,它可以没有参数,也可以带有若干参数。 ...

1810
来自专栏苦逼的码农

从0打卡leetcode之day11--正则表达式匹配

给定一个字符串 (s) 和一个字符模式 (p)。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。

852
来自专栏web前端教室

JS判断重复数组是否有重复项

大家好,今天我们来讲一下,如何使用javascript判断一个数组之中,是否有相同重复的元素。 在讲之前,先来讲一下思路: 在现实当中,当我们要判断某几个东西...

2419
来自专栏Java技术栈

equals 和 hashCode 到底有什么联系?一文告诉你!

Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和ha...

1023
来自专栏Esofar 开发日记

JavaScript权威指南 - 函数

函数本身就是一段JavaScript代码,定义一次但可能被调用任意次。如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法。用于初始化一个...

663
来自专栏水击三千

浅谈JavaScript的函数表达式(闭包)

  前文已经简单的介绍了函数的闭包。函数的闭包就是有权访问另一个函数作用域的函数,也就是函数内部又定义了一个函数。 1 var Super=function(n...

2145
来自专栏JetpropelledSnake

Python学习笔记之Super函数

1364

扫码关注云+社区