我试图检查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做了一些小改动。我使用
*
来匹配至少一个数字,而不是+
匹配零个或多个数字。希望这有帮助!