bash数组总结
bash数组操作
bash支持两种数组,一种是索引数组,一种是关联数组
索引数组
数组的值类型是任意的,索引也未必一定要连续,当做列表理解更好
下面总结下索引数组,即列表:
1. 声明
declare -a a
2. 初始化
a=(1 2 3 4)
# OR
a=([0]=2 [3]=8) # 注意长度为2,不是4
3. 获取列表长度
size=${a[@]}
4. 追加元素
a+=(11 12 13 14)
5. 赋值
a[1]=9
6. 按索引读取
value=${a[0]} # 读取索引0的值
7. 删除某元素
unset a[0]
8. 清空数组
unset a
9. 切片
echo ${a[@]:1:3} # 从索引1开始的3个元素
# 也支持负数索引,-1表示最后一个,但负数必须用括号括住
last=${a[@]:(-1):1}
10. 遍历
for i in ${a[@]}
do
echo $i
done
关联数组
1. 声明
declare -A map
2. 初始化
map[key1]=value1
map[key2]=value2
# or
map=([key1]=value1 [key2]=value2)
3. 长度
size=${!map[@]}
4. 获取键集合
keyset=${!map[@]}
5. 获取值集合
values=${map[@]}
6. 遍历
for key in ${!map[$@]}
do
echo $key:${map[$key]}
done
bash数组总结的更多相关文章
- Bash数组-判断某个元素是否在数组内的几种方法
声明一个数组array,一个待测试元素var array=( element1 element2 element3 ) var="element1" 接下来用几种方法来分别测试va ...
- UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算
复杂的数据结构和计算不是 bash 的特长.但它的确至少提供了数组和算术运算. 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 " ...
- bash数组操作-定义/初始化/赋值…
数组: 连续的多个独立内存空间,每个内存空间相当于一个变量 数组元素:数组名+索引 索引:从0开始编号 声明数组: declar ...
- Bash数组
1. 数组申明 declare -a array 2. 数组赋值 #法1 array=(var1 var2 var3 ... varN) #法2 array=([]=var1 []=var2 []=v ...
- [shell] bash数组(for时排序)
for处理时会自动把顺序按A-Z排序了 [root@XM-v106 ~]# bash b.sh A -> B -> C -> D -> E -> [root@XM-v10 ...
- Shell数组
#!/bin/bash#数组的使用#数组赋值方式:#1. user[index]=value index为0,1,2,3,4....数组下标值#2. user=(value0 value1 value ...
- [bash] 查找替换文件
写这个脚本也加深了对 bash 数组的理解. #!/bin/bash #2015-11-23 echo -e "说明:\n将文件放在/app/tmp_class目录下,保证该目录下没有其他文 ...
- Bash : 冒泡排序
冒泡排序是非常基础的排序算法,本文我们看看在 Bash 脚本中如何写冒泡排序.本文的演示环境为 ubuntu 16.04. 冒泡排序的简要描述如下: 通过连续的比较对数组中的元素进行排序 比较两个相邻 ...
- [20191011]bash任意进制编码表.txt
[20191011]bash任意进制编码表.txt --//bash可以使用任意进制编码转化为十进制.我想了解内部编码:--//实际上受字符集的限制,"任意"进制有限制的.测试看看 ...
随机推荐
- 八年技术加持,性能提升10倍,阿里云HBase 2.0首发商用
摘要: 早在2010年开始,阿里巴巴集团开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储,HBase在几代阿里专家的不懈努力下,已经表现得运行更稳定.性能更高效 ...
- java中获取类加载路径和项目根路径的5种方式分析
package my; import Java.io.File; import java.io.IOException; import java.net.URL; public class MyUrl ...
- luoguP1288 取数游戏II [博弈论]
题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...
- Minimum Snap轨迹规划详解(3)闭式求解
如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的.闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver. 这里介绍Nicholas Roy文章中闭式 ...
- (16)centos7 日志文件
常见日志文件 开机启动日志,只会记录本次信息 /var/log/boot.log 计划任务日志 /var/log/cron 开机内核检测信息 /var/log/dmesg 账号登录信息 /var/lo ...
- NIO 源码分析(01) NIO 最简用法
目录 一.服务端 二.客户端 NIO 源码分析(01) NIO 最简用法 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) J ...
- Linux 下通过mail命令发送邮件
mail -s "测试" 1968089885@foxmail.com 需要先配置smtp服务器
- 2018年第九届蓝桥杯B组第四题:摔手机题解
摔手机 摔手机 动态规划 在蓝桥杯的时候遇到一次 当时没有做对 看了题解也没明白 如今再次遇到这个类似的题目 于是拿出来补补吧 摔手机题目如下: 星球的居民脾气不太好,但好在他们生气的时候唯一的 ...
- Cause: java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配
- 从零开始搭建系统1.3——Tomcat安装及配置
首先安装jdk,手动解压JDK的压缩包,然后设置环境变量 1.卸载自带openjdk 查询OpenJDK rpm -qa|grep java 批量卸载所有名字包含jdk的已安装程序.命令行: rpm ...