Loading

Bash数组与字典使用

需求

编写bash脚本希望用到更加灵活的数据格式。

数组

使用index索引,直接调用返回第一个元素,支持-1检索,不存在的index返回空。
举例:将十进制数转换为十六进制。

declare -a HEX # 可以省略
HEX=(0 1 2 3 4 5 6 7 8 9 A B C D E F)
echo ${HEX[15]} # F

字典

使用key索引,直接调用返回空,不支持index索引,不存在的key返回空。
据例:根据编号查找名称,不存在则返回编号。

declare -A nickname # 不能省略
nickname=(
  ['1-1']="张三"
  ['1-2']="李四"
  ['2-1']="王五"
)
name=${nickname[$num]}
name=${name:-$num} # 查不到直接返回num

参考

dictionary - How to define hash tables in Bash? - Stack Overflow

posted @ 2024-10-14 11:29  azureology  阅读(8)  评论(0编辑  收藏  举报