所以我只想特别匹配这种格式:xxxxxxxxxx
目前我有:
case $num in
[0-9]{10}) echo "$num" ;;
*) echo "no num" ;;
esac
但不幸的是,它不起作用,我根本找不到原因。 这种模式匹配有什么问题?
由于
答案 0 :(得分:2)
它不起作用,因为case
支持glob模式匹配,[0-9]{10}
是正则表达式。
您需要在=~
中使用if
运算符才能使用正则表达式:
if [[ $num =~ ^[0-9]{10}$ ]]; then
echo "$num"
else
echo "no num"
fi
答案 1 :(得分:0)
num=1234567890
case $num in
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]) echo "$num" ;;
*) echo "no num" ;;
esac
输出:
1234567890