首页 > 其他分享 >Bash数组与字典使用

Bash数组与字典使用

时间:2024-10-14 11:22:23浏览次数:1  
标签:返回 index HEX num 数组 nickname 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

标签:返回,index,HEX,num,数组,nickname,Bash,字典
From: https://www.cnblogs.com/azureology/p/18463706

相关文章

  • 【算法】树状数组
    1.算法简介先来看一个很现实的问题:就拿[luogu]P3372【模板】线段树1这道题为例。按常规做法,应该是用普通线段树+\(lazytag\)即可,但这样做代码较长,达到了\(118\)行。而如果用树状数组去做,只用\(63\)行就能搞定,用时更短,代码也很好理解。以下是数据对比:很明显,在两......
  • 2024-10-13:用go语言,给定一个二进制数组 nums,长度为 n, 目标是让 Alice 通过最少的行动
    2024-10-13:用go语言,给定一个二进制数组nums,长度为n,目标是让Alice通过最少的行动次数从nums中拾取k个1。Alice可以选择任何索引aliceIndex,如果对应的nums[aliceIndex]是1,Alice会拾取一个1并将其设为0。之后,Alice可以选择以下两种行动之一:将一个0变为1(最多执行maxCh......
  • Java——数组的定义与使用
    各位看官:如果您觉得这篇文章对您有帮助的话欢迎您分享给更多人哦感谢大家的点赞收藏评论,感谢您的支持!!!一:数组的概念以及定义,初始化1.1:数组概念以及定义数组概念:可以看成是相同类型元素的一个集合。数组定义:三种方法T[]数组名=newT[N];例如:int[]a......
  • Go 语言中的数组使用
    Go语言中的数组使用本文将详细介绍Go语言中数组的各种用法,包括数组声明和定义、多维数组的使用和遍历,以及数组的值传递等初级、中级和高级用法。数组声明定义的几种方式初级用法介绍Go中的数组是一种固定长度、元素类型相同的数据结构,适用于简单的数据存储场景。......
  • DAY31 ||贪心算法基础 | 455.分发饼干 |376.摆动序列 |53.最大子数组和
    贪心算法基础贪心算法是一种在求解问题时采取逐步构建解决方案的算法策略。它通过在每一步选择在当前看来最优的选择(即“贪心”选择),希望通过局部最优解的累积得到全局最优解。贪心算法的核心思想局部最优:每一步都选择在当前状态下最优的选择,不考虑后续步骤可能带来的影响。......
  • 02 线性结构——数组(特性、优缺点、基本使用、可变长的动态数组)
    目录1数组基础知识1.1认识数组1.2数组的声明1.3 数组的特性2数组的优缺点2.1优点2.1.1查找容易2.1.2高效的访问和修改2.2缺点2.2.1插入和删除效率低2.2.2扩展相对繁琐3数组的基本使用3.1遍历数组3.2修改数组元素4可变长的动态数组4.1 实现原理......
  • C++ 非STL数据结构学习——1.4 字典树
    1.字典树的定义字典树是一种多叉树结构,每个节点代表一个字符,从根节点到某个节点的路径表示一个字符串。每个节点包含若干指向子节点的指针,通常使用数组、哈希表或其他数据结构来实现。2.字典树的基本操作插入:将一个字符串插入到字典树中。查找:在字典树中查找一个字符串是否......
  • C语言中指针在数组的使用--摘自Micro_Frank
    #include<stdio.h>#include<stdint.h>intmain(void){ //指针的算术运算 int32_tnumbers[]={10,20,30,40,50,60,70,80,90,100}; int32_t*ptr=numbers;//无取地址符,也无数组下标,表示&numbers[0] //数组在内存中是连续的 //0->00000000090 //所以......
  • 第1关:求解一个整数数组划分为两个子数组问题
    [TOC]求解一个整数数组划分为两个子数组问题任务描述已知由n(n>=2)个整数正整数构成的集合A={ak}(0<=k<n),将其划分为两个不相交的子集A1和A2,元素个数分别是n1和n2,A1和A2中的元素之和分别为S1和S2.设计一个尽可能高效的划分算法,满足|n1-n2|最小且|S1-S2|最大,算法返回|......
  • Java将数组转换成字符串
    Java将数组转换成字符串1.使用Arrays.toString()对于一维数组,可以使用java.util.Arrays类中的toString()方法:importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]nums={1,2,3,4,5};String......