我想检查字典是否包含键,但我不知道如何。
我试过这个:
if [ -z "${codeDict["$STR_ARRAY[2]"]+xxx}" ]
then
echo "codeDict not contains ${STR_ARRAY[2]}"
codeDict["${STR_ARRAY[2]}"]="${STR_ARRAY[3]}"
fi
最佳答案
您的方法没有任何问题(使用 -z
),如下例所示:
$ declare -A a
$ a=( [a]=1 [b]=2 [d]=4 )
$ [[ -z ${a[a]} ]] && echo unset
$ [[ -z ${a[c]} ]] && echo unset
unset
但是,您的问题中的代码存在一些问题。您缺少内部数组周围的花括号,我个人建议您使用扩展测试(
[[
而不是 [
)以避免混淆引号:$ str=( a b c )
$ [[ -z ${a[${str[0]}]} ]] && echo unset
$ [[ -z ${a[${str[2]}]} ]] && echo unset
unset
关于bash - 如何检查字典是否包含bash中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353951/