How can I check if a string is in an array without iterating over the elements?

后端 未结 9 2329
眼角桃花
眼角桃花 2021-02-13 18:54

Is there a way of checking if a string exists in an array of strings - without iterating through the array?

For example, given the script below, how I can correctly impl

9条回答
  •  故里飘歌
    2021-02-13 19:35

    With bash 4, the closest thing you can do is use associative arrays.

    declare -A map
    for name in hello world my name is perseus; do
      map["$name"]=1
    done
    

    ...which does the exact same thing as:

    declare -A map=( [hello]=1 [my]=1 [name]=1 [is]=1 [perseus]=1 )
    

    ...followed by:

    tgt=henry
    if [[ ${map["$tgt"]} ]] ; then
      : found
    fi
    

提交回复
热议问题