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

标签 linux bash shell

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

我想做的就是这样:

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]+)?$

关于linux - 如何测试变量是否是 Bash 中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/806906/

相关文章:

Python 和 Pip 不同步

linux - linux中如何将数据永久保存在/tmp目录下

Bash for 循环获取上一个和下一个项目

linux - Bash:如何截断数组?

multithreading - Perl如何使线程等到Shell完成命令执行

bash - 在 Jenkins 中使用脚本在不同阶段运行

shell - 常规 + shell : Escaping characters

linux - 如何修改文件权限以防止删除但允许执行?

linux - 如何在 linux shell 命令参数中获取下一个参数?

c++ - 禁用 USB 内存棒的存储功能并自动启动程序