bash数组操作-定义/初始化/赋值…
数组:
连续的多个独立内存空间,每个内存空间相当于一个变量
数组元素:数组名+索引
索引:从0开始编号
声明数组:
declare -a ARRAR_NAME
declare -a test
test[0]
test[1]
关联数组:
declare -A ARRAY_NAME
支持稀疏格式
数组元素的赋值:
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 "$1:${rand[$i]}" #判断是否为偶数,且打印下标及及其值
done
练习:写一个脚本:
定义一个数组,数组元素为/var/log目录下,所有以.log结尾的文件的名字;
而后显示其索引为奇数的元素的内容;
#!/bin/bash
#
declare -a files #可以不定义长度
files=(/var/log/*.log)
for i in `seq 0 $[${#files[*]}-1]`; do #$[]中是算数表达式
[ $[$i%2] -eq 0 ] && echo "$1:${files[$i]}" #判断是否为偶数,且打印下标及及其值
done
从数组中挑选某元素
${ARRAY[@]:offset:number}
切片:
offset: 偏移过去的元素的个数
number: 取出的元素的个数
${ARRAY[@]:offset}
取出指定偏移量之后的所有元素;
${ARRAY[@]}或者${ARRAY[*]}
取出所有元素;
例如:
对于:week=(mon tue wed thu fri sat sun)
${week[@]:3:2}结果为:thu fri
${week[@]:3}结果为:thu fri sat sun
${week[@]}结果为:mon tue wed thu fri sat sun
${week[*]}结果为:mon tue wed thu fri sat sun
向数组中追加元素:但数组必须是非稀疏格式
week
week[${#ARRAY[@]}]:追加元素时,下标可以用数组的长度代替
从数组中删除元素,删除的不是元素的值,而是这个元素,后边的往前移
unset ARRAY[index]
关联数组:
可自定义任意字符串当作索引
declare -A week
week=([mon]="Monday" [tue]="Tuesday")
练习:生成10个随机数,排序
bash数组操作-定义/初始化/赋值…的更多相关文章
- go 数组的定义和赋值
package main import "fmt" func main() { //字符数组定义 var str [2]string str[0] = &q ...
- bash数组总结
bash数组操作 bash支持两种数组,一种是索引数组,一种是关联数组 索引数组 数组的值类型是任意的,索引也未必一定要连续,当做列表理解更好 下面总结下索引数组,即列表: 1. 声明 declare ...
- java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢--配置JVM
一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...
- Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作
一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
1.数组基础 1.什么是数组: 同一类型数据的集合,就是一个容器. 2.数组的好处: 可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式: (一 ...
- C 语言字符数组的定义与初始化
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...
- JavaScript jQuery 中定义数组操作及数组操作
1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维 ...
- Halcon学习(三)赋值与数组操作
assign : 对数据赋值,对数组的初始化.但不能对数组中的某一个值进行赋值. 举例:Tuple1 := [1,0,3,4,5,6,7,8,9] // 对数组进行初始化 Val := sin( ...
随机推荐
- 【0 基础学Dojo】第【1】篇 HelloWord
打开dojo 官网首页 http://dojotoolkit.org/,我们看到 点击get dojo 你将得到下载Dojo 的不同方式 2,点击下面方式下载, 解压后 新建myTest.html, ...
- plsql过期注册
Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769password:xs374ca 打开plsql工具 点击注册即可
- MySQL 如何在一个语句中更新一个数值后返回该值 -- 自增长种子竞态问题处理
什么是竞态问题? 假设有一个计数器,首先当前值自增长,然后获取到自增长之后的当前值.自增长后的值有可能被有些操作用来当做唯一性标识,因此并发的操作不能允许取得相同的值. 为什么不能使用使用UPDATE ...
- Mysql系列常见面试题(三)
1.Mysql数据表在什么情况下容易损坏? 服务器突然断电导致数据文件损坏,强制关机,没有先关闭Mysql服务等. 2.Mysql有关全校的表都有那几个? Mysql服务器通过权限表老控制用户对数据库 ...
- CentOS查找文件命令
[root@VM_147_255_centos ~]# find / -name aa.jpg 在根目录输入 如上命令,在全部目录中查找名字为aa.jpg的文件( *.jpg查找以.jpg结尾的所有文 ...
- 获取元素Bytagname区别/for循环应用
一:两种获取元素方式的区别.1.var aLi = oUl.getElementsByTagName('li');TagName前面可以加其他东西,id就只能是document,2,Id是静态的,ta ...
- Linux 安装Memcache扩展支持
查看相关软件包 yum search memcached 安装memcache yum -y install memcachedMemcache关联php yum -y install php-pec ...
- 2017.10.1 QBXT 模拟赛
题目链接 T1 枚举右端点,前缀和优化.对于当前点x,答案为 sum[x][r]-sum[x][l-1]-(sum[z][r]-sum[z][l-1]) 整理为 sum[x][r]-sum[z][r] ...
- 第010课_掌握ARM芯片时钟体系
from:第010课_掌握ARM芯片时钟体系 第001节_S3C2440时钟体系结构 S3C2440是System On Chip(SOC),在芯片省不仅仅有CPU,还有一堆外设. 至于有哪些外设,可 ...
- SpringMVC-常用的注解
1. RequestParam注解 把请求中的指定名称的参数传递给控制器中的形参赋值 value:请求参数中的名称 require:请求参数中是否必须提供此参数,默认值是true,必须提供 2. Re ...