📌  相关文章
📜  检查值是否在 bash 数组中 (1)

📅  最后修改于: 2023-12-03 15:26:45.173000             🧑  作者: Mango

检查值是否在 Bash 数组中

在 Bash 编程中,数组是一种非常常见的数据结构。当我们需要检查一个值是否在数组中时,可以使用一些 Bash 内置的函数。

示例代码

假设我们有一个数组 arr,包含了一些元素:

arr=("apple" "banana" "grape" "orange")

为了检查值是否在数组中,我们可以使用 if 语句和 [[ ... ]] 条件语句结合判断,代码如下:

value="banana"

if [[ " ${arr[@]} " =~ " ${value} " ]]; then
    echo "${value} is in the array"
else
    echo "${value} is not in the array"
fi

上述代码中,我们将数组 arr 转化成了空格分隔的字符串,然后使用 =~ 正则表达式匹配运算符来匹配值 banana,如果匹配成功,则输出 ${value} is in the array,否则输出 ${value} is not in the array

另外,我们也可以使用 in 关键字和 case 语句来判断值是否在数组中,代码如下:

value="grape"

case "${arr[@]}" in 
    *" ${value} "*)
        echo "${value} is in the array";;
    *)
        echo "${value} is not in the array";;
esac

上述代码中,我们使用 case 语句匹配数组 arr 中是否包含值 ${value},如果匹配成功,则输出 ${value} is in the array,否则输出 ${value} is not in the array

总结

以上是检查值是否在 Bash 数组中的两种方法,它们分别使用了 [[ ... ]] 条件语句和 case 语句。在实际编程中,可以根据不同的需求来选择相对应的方法来实现。