【问题标题】:Is dictionary declared是否声明字典
【发布时间】: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 分配任何值,使其未设置。

标签: bash shell


【解决方案1】:

我想我已经找到了解决方案

declare -A dictionary
dictionary[key]="val"

if [[ -z $(declare -p dictionary 2> /dev/null) ]]
then
  echo no
else
  echo yes
fi

但也许有一个更惯用的?

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 2016-04-04
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2016-12-24
    • 2017-06-05
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多