#!/bin/bash
# 定义数组
array=("apple" "banana" "cherry")
# 待检查的字符串
str_to_check="banana"
# 用if语句判断字符串是否在数组中
if [[ " ${array[@]} " =~ " $str_to_check " ]]; then
echo "$str_to_check is in the array"
else
echo "$str_to_check is not in the array"
fi
这里使用了[[ ]]
条件表达式和=~
操作符来判断字符串是否在数组的元素中。同样注意在模式中字符串前后的空格,以确保精确匹配。
if [[ " ${array[@]} " =~ " $str_to_check " ]] 和 if [[ "${array[@]}" =~ "$str_to_check" ]] 效果是不一样的;前者字符串前后都有空格(见绿色标记部分),后者没有,前者才是精准匹配
踩坑了,记录一下