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

最新文章

  1. PHP 高级编程(3/5) - 使用SPL(标准PHP库)实现观察者模式
  2. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)
  3. Java中如何解决double和float精度不准的问题
  4. NOJ 1643 阶乘除法(YY+小技巧)
  5. C# 利用WORD模板和标签(bookmark) 批量生成WORD
  6. NSMutableAttributedString iOS 在UILabel显示不同的字体和颜色(转)
  7. (转) linux虚拟机中和主机三种网络连接方式的区别
  8. libjingle开发人员指南
  9. C++创建动态链接库(*.dll)
  10. 演练5-7:Contoso大学校园管理系统(实现继承)
  11. 今天学习js做了些总结,分享给大家
  12. hdu 3091 Necklace(状态压缩类似于TSP问题)
  13. PHP通过Zabbix API获取服务器监控信息
  14. Elimination Game题解
  15. 菜鸡谈OO 第一单元总结
  16. TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用
  17. $(document).ready() 和 window.onload 方法比较
  18. 【Android】录音暂停和继续
  19. 利用goole guava 下载文件到本地
  20. ZOJ 3981 && 2017CCPC秦皇岛 A:Balloon Robot(思维题)

热门文章

  1. 线性基思想+贪心——cf1249C
  2. 神建模+dp——cf1236E
  3. 构造——cf1213E
  4. 生产环境用到的几个有用的Linux命令
  5. 电脑U盘启动制作
  6. (2)centos7 图形界面
  7. 10. Tasks and functions
  8. [Flink原理介绍第四篇】:Flink的Checkpoint和Savepoint介绍
  9. Codeforcs 1183B Equalize Prices
  10. python xlwt设置单元格的自定义背景颜色