我将如何写作:
PreviousInput='@(User1 | User2 | User3)*#channel'
###############################
Expression="*${PreviousInput}*"
case $Input in
$Expression )
Do_Something ;;
*)
Do_Something_Else ;;
esac
我真的想使用case语句,因为我已经在case语句中投入了很多逻辑,并且真的不想重写它。我在想,不知怎的,我可以使用glob模式,但我真的不知道如何做到这一点。有什么建议?任何帮助表示赞赏。
答案 0 :(得分:0)
bash手册说:
使用波浪扩展,参数和扩展检查每个检查的模式 变量扩展,算术替换,命令替换, 和流程替代。
所以我认为你的例子不应该完全等同于
case $Input in
*@(User1 | User2 | User3)*#channel* )
Do_Something ;;
*)
Do_Something_Else ;;
esac
如果你设置了shopt -s extglob
,那么应该做你想要的,就像shellter所说的那样。