【发布时间】:2021-05-13 09:23:12
【问题描述】:
我需要帮助了解为什么代码 B 会产生不同的结果
x=TEST_DATA_12345678_TST_87456321
下面的代码(CODE A)产生正确的输出(匹配)
if [[ $x == TEST_[A-Z][A-Z][A-Z][A-Z]_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[A-Z][A-Z][A-Z]_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]]; then echo "match"; else echo "non match"; fi
但是,下面的(代码 B)产生错误的输出(不匹配)
if [[ $x == TEST_[A-Z]{4}_[0-9]{8}_[A-Z]{3}_[0-9]{8} ]]; then echo "match"; else echo "non match"; fi
【问题讨论】:
-
使用
==意味着它使用shell globbing 匹配。要使用正则表达式匹配,请使用=~