如何在UNIX中检查变量是否为数字

时间:2017-02-16 01:12:37

标签: linux unix

我试图在UNIX中检查变量是否为数字,如下所示: 当我执行程序时,它始终会转到else块。当我检查在线测试工具

时,正则表达式是正确的
set reqex = '^[0-9]*$'
  if(  $parm  =~ $reqex ) then 
  echo "     ** NUMBER PASSED [$JOBPARM] **     "
  else 
  echo "     ** NOT NUMBER PASSED [$JOBPARM] **     " 
  endif

1 个答案:

答案 0 :(得分:0)

我不确定您使用的是哪种shell或脚本语言。

如果您正在尝试为ksh或bash开发shell脚本,那么这应该有效:

 reqex="^[0-9]+$"
 if [ $parm  =~ $reqex ]; then 
     echo "     ** NUMBER PASSED [$JOBPARM] **     "
 else 
     echo "     ** NOT NUMBER PASSED [$JOBPARM] **     " 
 fi

我也对正则表达式做了改变。我使用*来匹配至少一个数字,而不是+匹配零个或多个数字。

希望这有帮助!