【Linux】【Shell】【Basic】数组
1. 数组: 变量:存储单个元素的内存空间; 数组:存储多个元素的连续的内存空间; 数组名:整个数组只有一个名字; 数组索引:编号从0开始; 数组 名[索引], ${ARRAY_NAME[INDEX]} 注意:bash-4及之后的版本,支持自定义索引格式,而不仅仅是0,1,2,...数字格式; 此类数组称之为“关联数组” 2. 声明数组: declare -a NAME:声明索引数组; declare -A NAME:声明关联数组; 3. 数组中元素的赋值方式: (1) 一次只赋值一个元素; ARRAY_NAME[INDEX]=value (2) 一次赋值全部元素; ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...) (3) 只赋值特定元素; ARRAY_NAME=([0]="VAL1" [3]="VAL4" ...) 注意:bash支持稀疏格式的数组; (4) read -a ARRAY_NAME 4. 引用数组中的元素:${ARRAY_NAME[INDEX]} 注意:引用时,只给数组名,表示引用下标为0的元素; 5. 数组的长度(数组中元素的个数): ${#ARRAY_NAME[*]} ${#ARRAY_NAME[@]} 示例:生成10个随机数,并找出其中的最大值和最小值;#!/bin/bash
#
declare -a rand
declare -i max=0 for i in {0..9}; do
rand[$i]=$RANDOM
echo ${rand[$i]}
[ ${rand[$i]} -gt $max ] && max=${rand[$i]}
done echo "MAX: $max"
练习:生成10个随机数,而后由小到大进行排序;
练习:定义一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件;统计其下标为偶数的文件中的行数之和; #!/bin/bash
#
declare -a files
files=(/var/log/*.log) declare -i lines=0 for i in $(seq 0 $[${#files[*]}-1]); do
if [ $[$i%2] -eq 0 ]; then
let lines+=$(wc -l ${files[$i]} | cut -d' ' -f1)
fi
done echo "Lines: $lines."
6. 引用数组中的所有元素: ${ARRAY_NAME[*]} ${ARRAY_NAME[@]} 7. 数组元素切片: ${ARRAY_NAME[@]:offset:number} offset:要路过的元素个数; number:要取出的元素个数;省略number时,表示取偏移量之后的所有元素; 8. 向非稀疏格式数组中追加元素: ARRAY_NAME[${#ARRAY_NAME[*]}]= 9. 删除数组中的某元素: unset ARRAY[INDEX] 10. 关联数组: declare -A ARRAY_NAME ARRAY_NAME=([index_name1]="value1" [index_name2]="value2" ...)【Linux】【Shell】【Basic】数组的更多相关文章
- linux shell 中数组使用方法介绍
linux shell在编程方面比windows 批处理强大太多,不管是在循环.运算.已经数据类型方面都是不能比較的. 以下是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...
- Linux shell之数组
引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...
- linux shell 中数组的定义和for循环遍历的方法
linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开.数组的下标从0开始. 1 获取下标为n的元素: variable[n] 而且不存在数 ...
- linux shell basic command
Learning basic Linux commands Command Description $ ls This command is used to check the contents of ...
- Linux shell awk数组使用
awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下: abc[1]="xiaohong" abc[2]="xiaolan" ...
- Linux Shell 中数组的语法及应用
#!/bin/sh## 数组的声明与初始化方法# 先声明后赋值:declare -a arrayarray=(one two three) # 声明并初始化:array_1=(1 2 3 four) ...
- 转:linux shell 数组建立及使用技巧
linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...
- 转载-Linux Shell 数组建立及使用技巧
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- linux shell 数组建立及使用技巧
参考网址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell在编程方面比windows 批处理强大太多 ...
随机推荐
- 监控框架 - prometheus - 参数指标
基于SpringBoot2.0+ Actuator metrics的监控(基于Oracle JDK9,G1) 引言 SpringBoot2在spring-boot-actuator中引入了microm ...
- 记一次性能优化的心酸历程【Flask+Gunicorn+pytorch+多进程+线程池,一顿操作猛如虎】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文只是记录我优化的心酸历程.无他,唯记录尔.....小伙伴们可围观,可打call,可以私信与我交流. 干货满满,建议收藏,需要用到时常看看. 小 ...
- 让textarea根据文本的长度自动调整它的高度
... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR ...
- myeclipse trial expired暂时解决办法
运行以下程序,生成key: import java.io.*; public class MyEclipseGen { private static final String LL = "D ...
- [luogu5665]划分
暴力dp,用f[i][j]表示前i个数,最后一个区间是(j,i]的最小答案,转移方程用可以用前缀和来优化,复杂度为$o(n^3)$(然后可以各种优化到$o(n^2)$,但这不需要)输出f[i][j], ...
- 【机器学习基础】卷积神经网络(CNN)基础
最近几天陆续补充了一些"线性回归"部分内容,这节继续机器学习基础部分,这节主要对CNN的基础进行整理,仅限于基础原理的了解,更复杂的内容和实践放在以后再进行总结. 卷积神经网络的基 ...
- C# Pechkin初始化一次后被锁住的问题
Pechkin.dll可用于pdf的生成,常规用法网上都有介绍:https://www.cnblogs.com/felixnet/p/5143934.html 但是当在一个页面上执行过一次之后,再次就 ...
- 混合(Pooling)样本测序研究
目录 1.混合测序基础 2. 点突变检测 3. BSA 4. BSR 5. 混合样本GWAS分析 6. 混合样本驯化研究 7. 小结 1.混合测序基础 测序成本虽然下降了,但对于植物育种应用研究来说还 ...
- miRNA分析--靶基因预测(三)
miRNA分析--数据过滤(一) miRNA分析--比对(二) 根据miRNA Target Prediction in Plants, miRNA并非所有区域都要求严格匹配,其中第1位碱基和第14位 ...
- 【5】肿瘤DNA甲基化数据分析原理及流程
目录 导论 DNA甲基化基本概论 检测DNA甲基化的方法 DNA甲基化数据分析流程及方法 DNA甲基化在肿瘤研究中的应用 导论 表观遗传:非DNA决定的基因表达,或表型改变中可遗传因素的研究 DNA水 ...