小编典典

如何测试变量是否是 Bash 中的数字?

all

我只是不知道如何确保传递给我的脚本的参数是一个数字。

我想做的就是这样的:

test *isnumber* $1 && VAR=$1 || echo "need a number"

有什么帮助吗?


阅读 115

收藏
2022-03-02

共1个答案

小编典典

一种方法是使用正则表达式,如下所示:

re='^[0-9]+$'
if ! [[ $yournumber =~ $re ]] ; then
   echo "error: Not a number" >&2; exit 1
fi

如果值不一定是整数,请考虑适当修改正则表达式;例如:

^[0-9]+([.][0-9]+)?$

…或者,处理带符号的数字:

^[+-]?[0-9]+([.][0-9]+)?$
2022-03-02