匹配负数范围-20到19

时间:2013-04-10 17:03:27

标签: bash

我很好奇如何匹配一个负数,特别是-20到19。我对bash相当新,并且之前从未尝试过负数。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

试试这个正则表达式:

(-(20|1[0-9]|[1-9])|1?[0-9])