我试图检查UNIX中的变量是否为数字,如下所示:
当我执行这个程序时,它总是转到else块

set reqex = '^[0-9]*$'
  if(  $parm  =~ $reqex ) then
  echo "     ** NUMBER PASSED [$JOBPARM] **     "
  else
  echo "     ** NOT NUMBER PASSED [$JOBPARM] **     "
  endif

最佳答案

我不确定您使用的是哪种shell或脚本语言。
如果您试图为ksh或bash开发shell脚本,则应该可以:

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

我还对regex做了一些小改动。我使用*来匹配至少一个数字,而不是+匹配零个或多个数字。
希望这有帮助!

10-06 08:47