数组:连续的多个独立内存空间,每个内存空间相当于一个变量
数组元素:数组名+索引
索引:从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个随机数;排序;
相关推荐
首先,我们来了解Bash编程的基础。Bash脚本通常以`#!/bin/bash`作为开头,声明使用Bash解释器执行该文件。脚本中的每一行都是一个命令,可以是内置命令、shell函数、外部程序,或者通过分号或换行符隔开的多个命令。...
对于系统管理员和开发者来说,掌握高级Bash脚本编程技巧是提高工作效率的关键。这份“高级Bash脚本编程指南”涵盖了从基础到进阶的各个层面,旨在帮助用户深入理解和熟练运用Bash脚本。 首先,让我们了解一下Bash的...
4. **数组与关联数组**:Bash从4.0版本开始支持关联数组,这允许我们存储键值对,而不仅仅是索引值。 5. **正则表达式与模式匹配**:学习如何在Bash中使用正则表达式进行文本匹配和替换。 6. **函数与脚本调试**:...
《高级Bash脚本编程指南》是一本深入探讨Bash编程的资源,提供了丰富的示例和详尽的解释。以下是根据提供的压缩包文件名所涉及的一些核心知识点: 1. **数组操作**: - `array-append.bash`:Bash从4.0版本开始...
在Bash shell编程中,数组是一种非常有用的结构,可以存储多个...无论是管理文件列表、处理用户输入还是执行其他任务,数组都是Bash编程中不可或缺的工具。熟悉这些基本操作,能够帮助你更有效地处理复杂的数据结构。
书中后续章节将深入到变量、函数、数组、流程控制、错误处理、输入/输出重定向、子shell、程序调用、正则表达式、脚本调试等多个方面,全面覆盖了Bash脚本编程的各个方面。每个主题都配有丰富的示例和实用的技巧,...
Linux Bash脚本编程是Linux系统管理与自动化任务执行的核心技能之一。Bash,全称Bourne-Again SHell,是Unix及Linux操作系统中最常用的命令行解释器,它提供了丰富的命令行工具和强大的脚本编写能力。这本书《Linux ...
【Bash编程1】概述 Bash编程,也被称为Shell脚本编程,是Linux和Unix系统中常用的一种自动化任务执行方式。它利用Bourne-Again SHell (Bash) —— Linux默认的Shell,来编写一系列可执行的命令,形成一个可执行文件...
**高级Bash编程指南** Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的命令行解释器,它提供了丰富的功能,让用户能够高效地进行系统管理和自动化任务执行。高级Bash编程则深入探讨了Bash脚本编写中的高级...
### 高级Bash编程知识点概述 #### 一、引言 本教程旨在为初学者提供一条通往高级Bash编程的道路。它不仅适用于自学,也是课堂教学的理想材料,尤其是在教授编程概念方面。通过丰富的实例和练习,读者将逐步掌握...
**高级Bash编程指南中文版**是一本深入探讨Bash shell脚本编程的资源,源自英文版的**Advanced Bash Programming Guide**。Bash是Linux和类Unix系统中最常用的命令行解释器,也是编写自动化任务和脚本的强大工具。这...
《高级Bash编程指南》是一本深入探讨Shell脚本编程艺术的专业书籍,由Mendel Cooper撰写,旨在帮助读者从初学者进阶为Bash编程的高手。这本书以丰富的实例和详尽的解释,覆盖了Bash编程的各个方面,不仅适合初学者,...
《高级Bash编程指南》是一本专为熟练和有经验的Linux或Unix用户设计的书籍,旨在深入探讨Bash shell的高级用法和编程技巧。Bash,全称Bourne-Again SHell,是GNU项目的一个核心组件,广泛应用于各种Linux发行版和类...
### Shell脚本编程之数组详解 #### 一、数组的概念与意义 在Shell脚本编程中,数组是一种非常实用的数据结构,它允许开发者将多个相同类型的数据存储在一个名称下,并通过下标(索引)来区分不同的数据项。数组...
**精通Bash编程** Bash(Bourne-Again SHell)是Unix和类Unix操作系统中最常用的一种命令行解释器,也是Linux系统默认的shell。它由GNU项目开发,是自由软件,广泛应用于各种Linux发行版及macOS。这本书《精通Bash...
Bash还支持数组,虽然不像其他高级语言那样功能强大,但依然能处理多值的情况: ```bash arr=("apple" "banana" "cherry") echo ${arr[0]} # 输出 "apple" ``` 此外,Bash中的命令替换和进程替换可以用于读取命令...
本书《高级Bash脚本编程指南》是一本深入探讨UNIX®/Linux环境下Bash Shell脚本编程的权威指南,由Mendel Cooper所著。全书内容覆盖广泛,旨在为读者提供从基础到高级的Shell编程技能,并假定读者没有任何脚本编程或...
例如,Bash中的数组变量允许存储一组相关的值,通过索引访问。`[[ ... ]]`条件表达式提供了更丰富的测试选项,可以进行字符串和文件测试。Bash的重定向功能允许我们改变输入和输出的默认流向,如`>`用于覆盖文件,`>...