终端正则表达式语法



我正在尝试测试来自用户的字符串,以查看它是正整数还是十进制。我目前有:

if ! [[ "$varSize" =~ ^[0-9]+(?:$|.[0-9]+) ]] then echo "SIZE CAN ONLY CONTAIN NUMBERS" fi

但是我得到行错误,所以认为我的正则表达式格式有问题。正则表达式在正则表达式上运行良好,所以猜猜这是一个 bash 的事情吗?

提前感谢您的任何帮助

这是正确的解决方案:

#!/bin/bash
varSize="12.a3"
echo $varSize
re='^[0-9]+([.][0-9]+)?$'
if [[ "${varSize}" =~ $re ]]
then
echo "SIZE CONTAINS NUMBERS only"
else
echo "SIZE is not a number"
fi

您可以使用这个小脚本来进一步调整它以满足您的需求。

最新更新