`

bash编程之 数组

 
阅读更多

数组:连续的多个独立内存空间,每个内存空间相当于一个变量

数组元素:数组名+索引

索引:从0开始编号

 

声明普通数组:以数字为索引值

declare -a ARRAR_NAME

支持稀疏格式:索引值可以不连续

例如:

# declare -a t1

# t1[0]="sss"

# echo ${t1[0]}

# t1[3]="eee"

# echo ${t1[3]}

 

声明关联数组:以字符串为索引值

declare -A ARRAY_NAME

例如:

# declare -A t2

# t2[peter]="zhou"

# echo ${t2[peter]}

 

数组元素的赋值:

(1) 一次只赋值一个元素

ARRAY[index]=VALUE

a[0]="hello"

(2) 一次赋值全部元素

ARRAY=("mon" "tue" "wed")

(3) 指定索引进行赋值

ARRAY=([0]="sun" [1]="mon" [5]="fri")

(4) read -a ARRAY

 

引用数组元素:${ARRAY[index]} 

 

数组的长度:

${#ARRAY[*]}, ${#ARRAY[@]}

 

练习1:写一个脚本,生成10个随机数,保存至数组rand中;而后显示数组索引为偶数的元素的值;

rand[$i]=$RANDOM

 

		#!/bin/bash
		#
		for i in {0..9}; do
			rand[$i]=$RANDOM
			[ $[$i%2] -eq 0 ] && echo "$i:${rand[$i]}"
		done

 

 

 

 

练习:写一个脚本:

定义一个数组,数组元素为/var/log目录下,所有以.log结尾的文件的名字;

而后显示其索引为奇数的元素的内容;

declare -a files

files=(/var/log/*.log)

 

		#!/bin/bash
		#
		declare -a files
		files=(/var/log/*.log)

		for i in `seq 0 $[${#files[*]}-1]`; do
			[ $[$i%2] -ne 0 ] && echo "$i: ${files[$i]}"
		done   

 

 

 

从数组中挑选某元素:

切片:

${ARRAY[@]:offset:number}

offset: 偏移过去的元素的个数;

number: 取出的元素的个数;

对于:week=(mon tue wed thu fri sat sun)

${week[@]:3:2}结果为:

 

${ARRAY[@]:offset}

取出指定偏移量之后的所有元素;

 

${ARRAY[@]}, ${ARRAY[*]}

取出所有元素;

 

向数组中追加元素:非稀疏格式

week[${#week[@]}] 

在数组末尾追加一个元素,比如:week[${#week[@]}]="aa", 相当于java中 week[week.length]="aa"

 

从数组中删除元素:

unset ARRAY[index]  

使用后下标为index的值不存在,后面的index不前移,${#ARRAY[@]的值会减1

 

关联数组:

可自定义任意字符串当作索引

declare -A week

week=([mon]="Monday" [tue]="Tuesday")

 

练习:生成10个随机数;排序;

 

分享到:
评论

相关推荐

    abs和bash编程

    首先,我们来了解Bash编程的基础。Bash脚本通常以`#!/bin/bash`作为开头,声明使用Bash解释器执行该文件。脚本中的每一行都是一个命令,可以是内置命令、shell函数、外部程序,或者通过分号或换行符隔开的多个命令。...

    高级Bash脚本编程指南 操作系统 - Linux - 高级Bash脚本编程指南.zip

    对于系统管理员和开发者来说,掌握高级Bash脚本编程技巧是提高工作效率的关键。这份“高级Bash脚本编程指南”涵盖了从基础到进阶的各个层面,旨在帮助用户深入理解和熟练运用Bash脚本。 首先,让我们了解一下Bash的...

    bash高级编程 advanced bash script

    4. **数组与关联数组**:Bash从4.0版本开始支持关联数组,这允许我们存储键值对,而不仅仅是索引值。 5. **正则表达式与模式匹配**:学习如何在Bash中使用正则表达式进行文本匹配和替换。 6. **函数与脚本调试**:...

    高级Bash脚本编程指南 源码

    《高级Bash脚本编程指南》是一本深入探讨Bash编程的资源,提供了丰富的示例和详尽的解释。以下是根据提供的压缩包文件名所涉及的一些核心知识点: 1. **数组操作**: - `array-append.bash`:Bash从4.0版本开始...

    Bash中数组的操作教程

    在Bash shell编程中,数组是一种非常有用的结构,可以存储多个...无论是管理文件列表、处理用户输入还是执行其他任务,数组都是Bash编程中不可或缺的工具。熟悉这些基本操作,能够帮助你更有效地处理复杂的数据结构。

    bash高级编程教程

    书中后续章节将深入到变量、函数、数组、流程控制、错误处理、输入/输出重定向、子shell、程序调用、正则表达式、脚本调试等多个方面,全面覆盖了Bash脚本编程的各个方面。每个主题都配有丰富的示例和实用的技巧,...

    Linux Bash脚本编程大全_超清版

    Linux Bash脚本编程是Linux系统管理与自动化任务执行的核心技能之一。Bash,全称Bourne-Again SHell,是Unix及Linux操作系统中最常用的命令行解释器,它提供了丰富的命令行工具和强大的脚本编写能力。这本书《Linux ...

    ch8 Bash编程1

    【Bash编程1】概述 Bash编程,也被称为Shell脚本编程,是Linux和Unix系统中常用的一种自动化任务执行方式。它利用Bourne-Again SHell (Bash) —— Linux默认的Shell,来编写一系列可执行的命令,形成一个可执行文件...

    高级bash编程

    **高级Bash编程指南** Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的命令行解释器,它提供了丰富的功能,让用户能够高效地进行系统管理和自动化任务执行。高级Bash编程则深入探讨了Bash脚本编写中的高级...

    高级Bash编程

    ### 高级Bash编程知识点概述 #### 一、引言 本教程旨在为初学者提供一条通往高级Bash编程的道路。它不仅适用于自学,也是课堂教学的理想材料,尤其是在教授编程概念方面。通过丰富的实例和练习,读者将逐步掌握...

    高级bash编程指南中文版

    **高级Bash编程指南中文版**是一本深入探讨Bash shell脚本编程的资源,源自英文版的**Advanced Bash Programming Guide**。Bash是Linux和类Unix系统中最常用的命令行解释器,也是编写自动化任务和脚本的强大工具。这...

    高级Bash编程指南 - Advanced Bash-Scripting Guide

    《高级Bash编程指南》是一本深入探讨Shell脚本编程艺术的专业书籍,由Mendel Cooper撰写,旨在帮助读者从初学者进阶为Bash编程的高手。这本书以丰富的实例和详尽的解释,覆盖了Bash编程的各个方面,不仅适合初学者,...

    《高级bash编程指南》

    《高级Bash编程指南》是一本专为熟练和有经验的Linux或Unix用户设计的书籍,旨在深入探讨Bash shell的高级用法和编程技巧。Bash,全称Bourne-Again SHell,是GNU项目的一个核心组件,广泛应用于各种Linux发行版和类...

    shell脚本编程之数组

    ### Shell脚本编程之数组详解 #### 一、数组的概念与意义 在Shell脚本编程中,数组是一种非常实用的数据结构,它允许开发者将多个相同类型的数据存储在一个名称下,并通过下标(索引)来区分不同的数据项。数组...

    2009年图书:精通Bash编程

    **精通Bash编程** Bash(Bourne-Again SHell)是Unix和类Unix操作系统中最常用的一种命令行解释器,也是Linux系统默认的shell。它由GNU项目开发,是自由软件,广泛应用于各种Linux发行版及macOS。这本书《精通Bash...

    高级Bash脚本编程指南(书中代码)

    Bash还支持数组,虽然不像其他高级语言那样功能强大,但依然能处理多值的情况: ```bash arr=("apple" "banana" "cherry") echo ${arr[0]} # 输出 "apple" ``` 此外,Bash中的命令替换和进程替换可以用于读取命令...

    高级Bash脚本编程指南[1].3.9.1 (杨春敏 黄毅 译)【无重复页】.pdf

    本书《高级Bash脚本编程指南》是一本深入探讨UNIX®/Linux环境下Bash Shell脚本编程的权威指南,由Mendel Cooper所著。全书内容覆盖广泛,旨在为读者提供从基础到高级的Shell编程技能,并假定读者没有任何脚本编程或...

    unix 上机实验 cshell编程 bash编程

    例如,Bash中的数组变量允许存储一组相关的值,通过索引访问。`[[ ... ]]`条件表达式提供了更丰富的测试选项,可以进行字符串和文件测试。Bash的重定向功能允许我们改变输入和输出的默认流向,如`>`用于覆盖文件,`>...

Global site tag (gtag.js) - Google Analytics