同步操作将从 bingios/pure-bash-bible-zh_CN 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# 删除重复的数组元素
remove_array_dups() {
# Usage: remove_array_dups "array"
declare -A tmp_array
for i in "$@"; do
[[ $i ]] && IFS=" " tmp_array["${i:- }"]=1
done
printf '%s\n' "${!tmp_array[@]}"
}
语法说明:
declare -A tmp_array
tmp_array["${i:- }"]=1
tmp_array["$i"]=1
将关联数组以i作下标的值赋为1,如果之前已经存在,则会重复赋值,变相的过滤了重复元素。${!tmp_array[@]}
${!数组名[@或者*]}
获取数组的索引列表Bash从4.0的版本开始就可以使用关联数组了
关联数组的下标可以采用非整型类型,类似于其他语言中的字典key-value类型,其中,key为下标,value为对应的元素的值,key唯一,value可以不唯一。
使用关联数组前应该先声明 declare -A array
关联数组用法如下:
array["jim"]=158
array["amy"]=168
或者直接使用内嵌“索引-值”列表法:
array=(["jim"]=158 ["amy"]=168)
遍历array:
for key in ${!array[*]}
do
echo $key
done
使用下标遍历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也不能再用了,如下所示:
declare -A array array["jim"]=158 unset array array["jim"]=189
则会出错:语法错误,也就是在unset array之后,该array不再是关联数组,所以key不可以用非整型来做索引
判断某一个key是否在该关联数组中,如下所示:
function isInCountResult(){ for key in ${!count_result[*]} do if [ "$1" = "$key" ] then return 0 fi done return 1 }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。