shell脚本 关联数组的使用
来源:互联网 发布:四川广电网络套餐介绍 编辑:程序博客网 时间:2024/05/16 01:44
Bash从4.0的版本开始就可以使用关联数组了
关联数组的下标可以采用非整型类型,类似于java中的key-value类型,其中,key为下标,value为对应的元素的值,key唯一,value可以不唯一。
使用关联数组前应该先声明 declare -A array
然后就可以像使用普通数组一样使用关联数组了,如下所示:
array["jim"]=158array["amy"]=168或者直接使用内嵌“索引-值”列表法:
array=(["jim"]=158 ["amy"]=168)遍历array:
for key in ${!array[*]}do echo $keydone使用下标遍历array:
for i in "${!array[@]}"do echo ${array[$i]}done其他语法如下:
echo ${!array[*]} #取关联数组所有键echo ${!array[@]} #取关联数组所有键echo ${array[*]} #取关联数组所有值echo ${array[@]} #取关联数组所有值echo ${#array[*]} #取关联数组长度echo ${#array[@]} #取关联数组长度在为关联数组赋值时,不加"$",而是直接 array["fe"]=189 ,在取值的时候,要加"$",如 $array["fe"] 则得到的是189
清空数组元素 unset array[“fe”] ,但是这样清空后,array中仍有“fe”这个key,只是其对应的值被清空了
清空整个数组 unset array,但是这样清空后,array的key是没有了,但是整个array也不能再用了,如下所示:
<pre name="code" class="java">declare -A arrayarray["jim"]=158unset arrayarray["jim"]=189
则会出错:语法错误,也就是在unset array之后,该array不再是关联数组,所以key不可以用非整型来做索引
所以我只能如下解决:
declare -A arrayarray["jim"]=158unset arraydeclare -A arrayarray["jim"]=189判断某一个key是否在该关联数组中,如下所示:
function isInCountResult(){for key in ${!count_result[*]}do if [ "$1" = "$key" ] then return 0 fidonereturn 1}这里需要注意,shell脚本中的if判断中,返回0为true,返回1为false
关于使用shell的普通数组:
把数组当做参数在函数之间传递时,在一个帖子里看到如下的方法:
function f1(){declare -a arrayarray[0]="h1"array[1]="h2"arr=`echo "${array[*]}"`local val="h1"f2 $val $arr}function f2(){local arr2=`echo "$2"`for value in ${arr2[*]}do echo "value: $value"done}但是运行完,发现只是传递了array中的第一个值,即h1,
如果使用f2 $val "${array[*]}", 传递的仍然是第一个值,最后还是没有找到办法能把整个数组传递过去
在使用unset 删除普通数组元素是,例如unset array[0] 其实删除的只是对应的值,但是array[0]这个位置仍然在,原来的array[1]现在仍是array[1],而不会变为array[0]
0 0
- shell脚本 关联数组的使用
- shell 的关联数组
- shell脚本中数组的使用
- shell脚本中数组的使用
- shell脚本的参数设计,以及shell数组使用 demo
- Shell脚本攻略05-数组和关联数组
- shell的 关联数组 和 普通数组
- linux shell script脚本数组的建立和使用
- shell 脚本的使用
- 脚本shell的使用
- shell脚本的使用
- Shell学习: 数组、关联数组和别名使用
- Shell 关联数组 Hash
- shell--关联数组
- shell中的关联数组
- [Shell]数组与关联数组
- shell---数组的使用
- shell数组的使用
- 2015 ICPC 长春网赛 解题报告
- Google《Android性能优化》学习笔记链接
- SQL练习9月10
- cassandra clustering key 的查询原理
- 1.嵌入式开发环境搭建--虚拟机安装(unbutu)系统
- shell脚本 关联数组的使用
- 近期刷题题解
- SQL练习9月10
- 网易游戏2016在线笔试
- 编译器实践的重要性-专家评说
- 黑马程序员——学习日记10
- apktool + eclipse 调试smali
- Spring MVC @ResponseBody 提示 406 The resource identified by this request……
- quotation & citation