bash - 如何检查字典是否包含bash中的键?

标签 bash dictionary

我想检查字典是否包含键,但我不知道如何。
我试过这个:

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/

相关文章:

mysql创建数据库和用户脚本

linux - 如何从文件的每一行中提取具有特殊字符的特定字符串

bash - 使用 sed/awk 删除多余的行

json - Go - 在 json.Marshal 中自动将字符串值转换为 int 值

IOS Swift 从 [String : [AnotherKindOfDictionary] ] ( ) 的字典中读取数据

linux - 可执行脚本在 Linux 机器上获得拒绝权限

Bash 获取命令的返回值并以此值退出

java - 无法在其他方法中检索 HashMap 输入

python - 在字典中查找匹配的键并将键替换为值

python - 如何用随机字典值填充 pandas 数据框列