我一直在编写一个小 bash 脚本来帮助经验不足的 Linux 用户使用一些命令。一件事似乎在逃避我,那就是在为 if 语句进行模式匹配时使用花括号。
regex="[A-Za-z0-9]/{5/}"
if [[ $2 =~ $regex ]]
then
num=$2
else
echo "Invalid entry"
exit 1
fi
这应该捕获恰好是 5 个字符的任何 AZ、az 或 0-9,不是吗?
我已经尝试了很多次,很多变化,很多引号,有和没有转义......似乎没有任何工作:
+ regex='[A-Fa-f0-9]/{5/}'
+ [[ abcd1 =~ [A-Za-z0-9]/{5/} ]]
+ echo 'Invalid entry'
有什么我想念的想法吗?
GNU bash, version 3.2.39(1)-release