我只是不知道如何确保传递给我的脚本的参数是一个数字。
我想做的就是这样的:
test *isnumber* $1 && VAR=$1 || echo "need a number"
有什么帮助吗?
一种方法是使用正则表达式,如下所示:
re='^[0-9]+$' if ! [[ $yournumber =~ $re ]] ; then echo "error: Not a number" >&2; exit 1 fi
如果值不一定是整数,请考虑适当修改正则表达式;例如:
^[0-9]+([.][0-9]+)?$
…或者,处理带符号的数字:
^[+-]?[0-9]+([.][0-9]+)?$