我应该如何在case语句中使用完全关键字匹配作为条件?

 我才是陈墨_773 发布于 2023-02-03 10:52

我试图给自己写一些方便的脚本,以便更有效地合法地放松工作,这个问题突然出现了:

给定一个很长的字符串$LONGEST_EVER_STRING和几个关键字串像$A='foo bar',$B='omg bbq'$C='stack overflow'

我应该如何使用完全关键字匹配作为case语句中的条件?

for word in $LONGEST_EVER_STRING; do
  case $word in
    any exact match in $A) do something ;;
    any exact match in $B) do something ;;
    any exact match in $C) do something ;;
    *)  do something else;;
  esac
done

我知道我可以这样写,但看起来很难看:

for word in $LONGEST_EVER_STRING; do
  if [[ -n $(echo $A | fgrep -w $word) ]]; then
    do something;
  elif [[ -n $(echo $B | fgrep -w $word) ]]; then
    do something;
  elif [[ -n $(echo $C | fgrep -w $word) ]]; then
    do something;
  else
    do something else;
  fi
done

有没有人有优雅的解决方案?非常感谢!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有