Linux 如何在UNIX中检查变量是否为数字
我尝试在UNIX中检查变量是否为数字,如下所示: 当我执行程序时,它总是会阻塞else。当我检查在线测试工具时,正则表达式是正确的Linux 如何在UNIX中检查变量是否为数字,linux,unix,Linux,Unix,我尝试在UNIX中检查变量是否为数字,如下所示: 当我执行程序时,它总是会阻塞else。当我检查在线测试工具时,正则表达式是正确的 set reqex = '^[0-9]*$' if( $parm =~ $reqex ) then echo " ** NUMBER PASSED [$JOBPARM] ** " else echo " ** NOT NUMBER PASSED [$JOBPARM] ** " endif 我不确定您使用
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
我还对正则表达式做了一个简单的修改。我使用+
来匹配至少一个数字,而不是匹配零个或多个数字
希望这有帮助 您使用的脚本语言是什么?您似乎使用了
csh
中的一些语法和bash
中的一些语法。我将*更改为+并将$parm设置为123,但它会抛出“未传递数字”消息。我正在使用Kshell。提前感谢。您在哪里从*
更改为+
?在你的剧本里?