当前位置:  开发笔记 > 编程语言 > 正文

检查变量是否为UNIX shell中的数字

如何解决《检查变量是否为UNIXshell中的数字》经验,为你挑选了3个好方法。

如何在UNIX shell中检查变量是否为数字或包含数字?



1> Adam Rosenfi..:
if echo $var | egrep -q '^[0-9]+$'; then
    # $var is a number
else
    # $var is not a number
fi



2> Piotr Lesnic..:

Shell变量没有类型,因此最简单的方法是使用return type test命令:

if [ $var -eq $var 2> /dev/null ]; then ...

(或者用正则表达式解析它)


如果var为空,则会出现误报.也许:`if [-n"$ var"-a $ var -eq $ var 2>/dev/null]; 然后echo是num; 否则不是一个数字; fi`

3> Jens..:

没有叉子,没有管道.纯POSIX外壳:

case $var in
   (*[!0-9]*|'') echo not a number;;
   (*)           echo a number;;
esac

(假设数字:=一串数字).如果你要允许有一个领先的正负号-+为好,剥离这样的可选符号:

case ${var#[-+]} in
   (*[!0-9]*|'') echo not a number;;
   (*)           echo a number;;
esac

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有