16、bash编程之数组介绍

1、程序构成:

主要由指令和数据构成,数据可以是变量、文件、数组

2、数组介绍:

变量:存储单个元素的内存空间

数组:存储多个元素的连续的内存空间

3、数组的特点:

数组名:整个数组只有一个名字

数组索引:元素编号从“0”开始,数组名[索引]

注意:对于bash-4及之后的版本,支持自定义的索引格式,而不仅仅是0,1,2....等等数字格式。同时数组可以不事先声明,可以直接使用,但是如果不声明,它会把多个字符串的变量当做一个变量,因此使用数组前,应先声明数组。

4、声明数组:(有两种方式)

方式一:declare -a NAME  //声明索引数组,用0,1,2,3....表示各元素

方式二:declare -A NAME  //声明关联数组,自定义索引格式

5、给数组中元素赋值:

①、一次只赋值一个元素:

格式:ARRAY_NAME[INDEX]=value

示例:

[[email protected] ~]# declare -a animal

[[email protected] ~]# animal[0]=pig

[[email protected] ~]# animal[1]=sheep

[[email protected] ~]# echo $animal  //引用第“0”个元素

pig

[[email protected] ~]# echo ${animal[1]}

pig[1]

[[email protected] ~]#

②、一次赋值全部元素:

格式:ARRAY_NAME=("VALUE1" "VALUE2" "VALUE3" ...)    //必须以空格键隔开各元素值

示例:

[[email protected] ~]# weekdays=("monday" "tuesday" "wedsday")

[[email protected] ~]# echo ${weekdays[2]}

wedsday

[[email protected] ~]#

③、只赋值特定元素:

格式:ARRAY_NAME=([0]="VAL0" [1]="VAL1" [3]="VAL3")    //可以不连续赋值,此种被称为稀疏数组。

示例:

[[email protected] ~]# cigrate=([0]="najing" [1]="xiaosu" [4]="yuxi")

[[email protected] ~]# echo ${cigrate[0]}

najing

[[email protected] ~]# echo ${cigrate[1]}

xiaosu

[[email protected] ~]# echo ${cigrate[2]}

[[email protected] ~]# echo ${cigrate[3]}

[[email protected] ~]# echo ${cigrate[4]}

yuxi

[[email protected] ~]#

注意:bash支持稀疏格式的数组。

5、数组元素引用:

${ARRAY_NAME[INDEX]}   //必须加{ },因为不加,则只会引用ARRAY_NAME,而不是整个数组元素。

原文地址:http://blog.51cto.com/10631377/2062267

时间: 2024-08-01 09:28:56

16、bash编程之数组介绍的相关文章

linux命令:bash编程之数组

变量:一段内存空间,用于存储字符,数字等信息. 数组: 如何申明一个数组: 赋值方法1: AA[0]=jerry AA[1]=tom AA[3]=wendy AA[6]=natasha 赋值方法2: AA=(jerry "tom obama" wendy natasha) AA=([0]=jerry [1]=tom [2]=wendy [6]=natasha) AA[3]=selina AA[4]=nikita 如何获取数组中非空的字符个数 ${#AA[*]}  或者 ${#AA[@]

linux下Bash编程之数组Array详解

1.Array数组与变量概念与区别 变量是一段内存空间,并且变量与变量之间是多数是不连续的内存空间 Array数组是由多个变量组成,数组中的变量称为元素,数组中的元素是连续的内存空间 2.声明数组 declare -a 数组名 例如:声明一个数组STU并初始化值 写法1: declare -a STU STU[0]=Willow STU[1}=Tom STU[2]=Redhat 写法2: STU=(Willow Tom Redhat) #元素之间用空格隔开,元素从0开始依次赋值,不能跳跃 写法3

Bash编程之数组和字符串处理

目录 笔记日期20180405 数组 声名(创建)数组declare -a ARRAY_NAME 数组元素的赋值ARRAY_NAME=("VAL1" "VAL2" "VAL3"...) 引用数组元素:${ARRAY_NAME[INDEX]} bash的字符串处理工具 字符串切片${var:offset:number} 基于模式取字串${var#*word} 查找替换变量的值${var/pattern/match} 查找并删除变量的某些字符${va

bash脚本编程之数组及随机变量

变量:用来存储存在值的内存空间:特点是一个变量中仅能存储一个数值. 数组:能够容纳多个数组元素的连续的内存空间:包括两种类型:1.稀疏数组(bash属于稀疏数组):在数组中的元素编号可以没有顺序:2.稠密数组:在数组中的元素必须按照顺序编号排列. 数组元素:数组中任何一个存放数据的存储单元,其作用相当于一个变量: 元素的标识有两种:索引数组标识:利用数字编号的方式,所有的数组元素都是使用数字编号的: 通常数字编号从零开始,即:0,1,2-- 关联数组标识:所有的数组元素都是可以使用名称或者字符串

bash编程快速入门

首先,我们简单的介绍一下bash,bash是GNU计划编写的Unixshell,它是许多Linux平台上的内定shell,它提供了用户与系统的很好的交互,对于系统运维人员,bash的地位是举足轻重的,bash编程能很快处理日常的任务 bash入门,一个最简单的bash例子 #vim hello.sh #!/bin/bash #This is the first example of the bash #echo "Hello world" 下面,我们就这个简单的bash 脚本来介绍一下

bash编程初体验之for

bash编程初体验之for for while until 概述 本文将介绍以for为代表的循环语句在shell 脚本中的应用,常见的循环语句有for, while, until,作为循环语句,顾名思义,它就是重复地做一件事,直到满足某一条件而退出:另外,还有两个循环控制语句continue与break来配合循环语句,以实现临时中断或跳出循环的功能:以下为for, while, until的知识点提炼: for, while, until 进入条件          for: 列表元素非空   

bash编程初体验(二)

bash编程初体验(二) read if case 概述 在本篇文章中,我们将介绍bash编程中有关if语句的简单用法,.如此,如果条件为真,if会执行一种指令,如果条件为假,if会选择执行另一种指令,这种执行就是所谓的选择结构,它能够改变命令的基本顺序流结构,以选择流的形式运行. 在有关if语句的论述中,我们还将介绍read命令,因为read命令可以方便地引入一个或多个变量,可以天然地与if语句结合:另外,除了if语句,还有一种常见的选择语句:case语句,其简单易用,高效简洁,是时的不二选择

[转] - Linux网络编程 -- 网络知识介绍

(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端        在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序. 比如我们使用ftp程序从另外一        个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序. 服务端        和客户端相

UNIX网络编程-基本API介绍(二)

参考链接:http://www.cnblogs.com/riky/archive/2006/11/24/570713.aspx 1.getsockname和getpeername getsockname函数获取与套接口关联的本地协议地址. getpeername函数获取与套接口关联的远程协议地址. ---------------------------------------------------------------------- #include <sys/socket.h> int