1
动态Case语句我怎么会去写:在猛砸
PreviousInput='@(User1 | User2 | User3)*#channel'
###############################
Expression="*${PreviousInput}*"
case $Input in
$Expression)
Do_Something ;;
*)
Do_Something_Else ;;
esac
我真的想用一个case语句,因为我有很多已经投资的case语句逻辑的,真不想重写它。我在想,我可以使用全局模式,但不知道我会怎么做。有什么建议么?任何帮助表示赞赏。
请修改您的问题,以包含$ {PreviousInput}的示例数据。祝你好运! – shellter
补充说,PreviousInput字符串是动态生成的,所以字符串会改变,但这是一个很好的示例。 – Trcx
根据你之前关于这个主题的问题,你正在使用'shopt -s extglob'?如果你幸运的话,你可能会用“eval”来包装整个多线的状态,但是需要一个前导和一个结束的dbl-quote来描述整个事情。如果需要在$ {Expression}值附近添加dbl引号,则需要转义这些引号,即'\“$ {Expression \”'。所以...''eval“case $ Input在\”$ {Expression | \“)...; esac”'中。并逃离你的'*'。这种方法可以很快得到真正的效果。您必须花时间了解eval,shell cmd命令行的评估顺序等。祝您好运。 – shellter