shell数组定义和操作

这是某天晚上自己闲来没事学习solr的时候忽然看见数组的定义,想转发一个比较详细的数组操作。

1.数组定义

a=(1 2 3 4 5)
 echo $a

一对括号表示是数组,数组元素用“空格”符号分割开。

2.数组读取与赋值

  • 得到长度

echo ${#a[@]}
5

用${#数组名[@或*]} 可以得到数组长度

  • 读取

echo ${a[2]} 
3

echo ${a[*]} 
1 2 3 4 5

用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容

  • 赋值:

a[1]=100

echo ${a[*]} 
1 100 3 4 5

a[5]=100

echo ${a[*]}

1 100 3 4 5 100

直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素

  • 删除:

a=(1 2 3 4 5)
 unset a
 echo ${a[*]}

a=(1 2 3 4 5)
unset a[1]   
 echo ${a[*]} 
1 3 4 5
echo ${#a[*]}
4

直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

3.特殊使用

  • 分片:

a=(1 2 3 4 5)
 echo ${a[@]:0:3}
1 2 3
 echo ${a[@]:1:4}
2 3 4 5

c=(${a[@]:1:4})
 echo ${#c[@]}
4
 echo ${c[*]} 
2 3 4 5

直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

  • 替换:

a=(1 2 3 4 5)    
 echo ${a[@]/3/100}
1 2 100 4 5
 echo ${a[@]}
1 2 3 4 5
 a=(${a[@]/3/100}) 
 echo ${a[@]}     
1 2 100 4 5

调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

从上面讲到的,大家可以发现linux shell 的数组已经很强大了,常见的操作已经绰绰有余

时间: 2024-10-10 08:13:58

shell数组定义和操作的相关文章

Javascript Jquery 中的数组定义与操作

Javascript Jquery 中的数组定义与操作 (2012-02-15 10:28:00) 转载▼ 标签: 杂谈   1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,

shell中数组的定义与操作

前言: 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解,shell中的数组. 数组的定义 何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念).那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型:虽然shell本身是弱类型的,但也可以这么区分.

Linux Shell数组常用操作详解

Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) 1 declare -a array 2 array=(1 2 3 4 5) 数组用小括号括起,数组元素之间用空格分开 2显示数组长度: [@tc_132_227 dm_pid_day]$ echo ${#array[@]} 5 [@tc_132_227 dm_pid_day]$ echo ${#array[*]} 5 命令: ${#数组名[@或*]} 获取数组长度,若数组无

shell 数组介绍及相关操作

引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解,shell中的数组. 数组的定义 何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念).那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型:虽然shell本身是弱类型的,但也可以这么区分.

[java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一旦创建,必须明确长度)          格式1:              元素类型   [ ]  数组名  =  new  元素类型  [元素个数即数组的长度]:              示例:int[] array = new int[5];          格式2:           

shell - 函数、数组定义与调用

#!/bin/bash # returning an array value function arraydblr() { local origarray local newarray local elements local i origarray=(`echo "[email protected]"`) newarrray=(`echo "[email protected]"`) elements=$[ $# -1 ] for((i=0;i<=$eleme

linux shell 数组建立及使用技巧

转自linux shell 数组建立及使用技巧 linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [[email protected] ~]$ a=(1 2 3 4 5)[[email protected] ~]$ echo $a1 一对括号表示是数组,数组元素用“空格”符号分割开. 2.数组读取与赋值 得到长度: [[email protected] ~

shell变量与字符串操作

默认情况下,Bash shell是一种无类型的脚步语言,除非用declare特别声明,否则它不会区分一个变量是整数变量.浮点数变量还是字符串变量.在Bash shell中所有的变量都被看成是字符串,使用时也不需要进行声明. 1.变量的命名 bash shell中变量的命名规则和C语言相同,必须是由英文字母.数字及下划线组成,第一个字符必须是字母或下划线,变量的长度没有限制,但英文字母区分大小写.虽然,bash shell中使用变量时不需要声明,但还是提倡对一些重要的变量进行声明.添加注释,以便阅

shell 数组建立及使用技巧

linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [[email protected] ~]$ a=(1 2 3 4 5)[[email protected] ~]$ echo $a1 一对括号表示是数组,数组元素用"空格"符号分割开. 2.数组读取与赋值 得到长度: [[email protected] ~]$ echo ${#a[@]}5 用