0

我很好奇如何匹配负数,特别是 -20 到 19。我对 bash 还很陌生,以前从未尝试过负数。

4

2 回答 2

3

使用算术(似乎更好的方法):

NUM="-20"

if [[ $NUM -gt -21 && $NUM -lt 20 ]];
then
    echo "OK"
else
    echo "FAIL"
fi

否则,如果您真的想使用正则表达式:

NUM="20"

if [[ $NUM =~ ^(-(20|1[0-9]|[1-9])|1?[0-9])$ ]];
then
    echo "OK"
else
    echo "FAIL"
fi
于 2013-04-10T17:13:46.497 回答
1

试试这个正则表达式:

(-(20|1[0-9]|[1-9])|1?[0-9])
于 2013-04-10T17:07:05.790 回答