开发者社区> 问答> 正文

检查数组中的索引或键的最简单方法?

使用:

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”已被使用?

谢谢使用:

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”已被使用?

谢谢使用:

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”已被使用?

谢谢 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 19:16:29 501 0
1 条回答
写回答
取消 提交回答
  • 从man bash开始,条件表达式:

    -v varname True if the shell variable varname is set (has been assigned a value). 例:

    declare -A foo foo[bar]="this is bar" foo[baz]="" if [[ -v "foo[bar]" ]] ; then echo "foo[bar] is set" fi if [[ -v "foo[baz]" ]] ; then echo "foo[baz] is set" fi if [[ -v "foo[quux]" ]] ; then echo "foo[quux] is set" fi 这将显示foo [bar]和foo [baz]均已设置(即使后者设置为空值),而foo [quux]未设置。

    2020-02-08 19:16:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载