测试元素是否在bash中的数组中

Modified on: Fri, 07 Dec 2018 19:20:03 +0800

有没有一种很好的方法可以检查数组中是否有bash中的元素(优于循环)?

或者,是否有另一种方法来检查数字或字符串是否等于任何一组预定义的常量?

作者:Tgr

最佳答案

在Bash 4中,您可以使用关联数组:

# set up array of constants
declare -A array
for constant in foo bar baz
do
    array[$constant]=1
done

# test for existence
test1="bar"
test2="xyzzy"

if [[ ${array[$test1]} ]]; then echo "Exists"; fi    # Exists
if [[ ${array[$test2]} ]]; then echo "Exists"; fi    # doesn't

要初始设置数组,您还可以进行直接分配:

array[foo]=1 array[bar]=1 # etc.

或者这样:

array[foo]=1
array[bar]=1
# etc.

相关问答

添加新评论