如何在bash case命令中执行“else”?

Lin*_*Lin 6 bash

filter="yes"
phonenumbers=(123 456 789 987 654 321)
echo "checking inbox now..."
myphonenumber=(7892)

if [[ "$filter" == "yes" ]]; then
    case "${phonenumbers[@]}" in
        *"$myphonenumber"*) echo "filter is on, phone number matches" 
        ;;
        !="$myphonenumber") echo "filter is on but the phone number doesn't match" 
        ;;
    esac
fi

if [[ "$filter" == "no" ]]; then
    echo "filter off"
fi
Run Code Online (Sandbox Code Playgroud)

我尝试运行该脚本但它不起作用,我应该如何显示该filter is on but the phone number doesn't match部分?我还在学习,我知道我可以用if else语句来做到这一点,但我想知道我是否也可以做到case

Lin*_*Lin 6

用这个解决了,*)所以整个代码是:

filter="yes"
phonenumbers=(123 456 789 987 654 321)
echo "checking inbox now..."
myphonenumber=(7892)

if [[ "$filter" == "yes" ]]; then
  case "${phonenumbers[@]}" in
    *"$myphonenumber"*) echo "filter is on, phone number matches" ;;
    *)                  echo "filter is on but the phone number doesn't match" ;;
  esac
fi

if [[ "$filter" == "no" ]]; then
  echo "filter off"
fi
Run Code Online (Sandbox Code Playgroud)