数组 – 最简单的方法来检查数组中的索引或键?
使用:
set -o nounset 1)有一个索引数组,如: myArray=( "red" "black" "blue" ) 这是检查元素1是否设置的最短方式? test "${#myArray[@]}" -gt "1" && echo "1 exists" || echo "1 doesn't exist" 我想知道是否有一个首选的。 2)如何处理非连续索引? myArray=() myArray[12]="red" myArray[51]="black" myArray[129]="blue" 如何快速检查’51’已经设置为例子? 3)如何处理关联数组? declare -A myArray myArray["key1"]="red" myArray["key2"]="black" myArray["key3"]="blue" 如何快速检查’key2’已经用于例子? 谢谢 EDITED if test "${myArray['key_or_index']+isset}" then echo "yes" else echo "no" fi; 这适用于索引和关联数组。没有使用set -o nounset显示错误。
要检查元素是否设置(适用于索引和关联数组)
[ ${array[key]+abc} ] && echo "exists" 基本上$ {array [key] abc}是什么 > if array [key] is set,return abc 参考文献: >在Bash手册和小笔记中查看Parameter Expansion
>这个答案实际上是从这个问题的答案改编的:How to tell if a string is not defined in a bash shell script? 包装函数: exists(){ if [ "$2" != in ]; then echo "Incorrect usage." echo "Correct usage: exists {key} in {array}" return fi eval '[ ${'$3'[$1]+muahaha} ]' } 例如 if ! exists key in array; then echo "No such array element"; fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |