【发布时间】:2023-01-17 03:49:29
【问题描述】:
有没有办法检查 shell 中声明的字典?
有一种方法可以检查变量是否为空,也有一种方法可以检查字典是否有键,但不确定检查字典是否存在的正确方法是什么。
我想我已经找到了解决方案
declare -A dictionary
dictionary[key]="val"
if [[ -z $(declare -p dictionary 2> /dev/null) ]]
then
echo no
else
echo yes
fi
但也许有一个更惯用的?
【问题讨论】:
-
请编辑您的问题以包含示例代码,以演示“变量不为空”、“字典有键”的含义。你把什么叫做“字典”?这不是 bash 文档中的常用术语(尽管我可以/必须猜测您的意思)。祝你好运。
-
你说的是关联数组,对吧? Python 使用“字典”(
dict) 来指代类似的东西。 -
declare -A foo标记名称引用关联数组,但数组本身不存在,除非您至少向其添加一个键。foo=()实际上并未为名称foo分配任何值,使其未设置。