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