2011-08-08 82 views
1

有没有办法将其反转,以便首先检查它是否无效?BASH:测试字符串是否有效

if expr "$string" : '-\?[0-9]\+$' >/dev/null 
then 
    echo "String is a valid integer." 
else 
    echo "String is not a valid integer." 
fi 
+3

你试过了吗if! expr ...]'? – Nobody

+3

你不需要'[]'来使用'!'。你可以输入类似'!虚假“的权利,并看到它成功。 –

回答

6

是的,我有@nobody和@BenJackson同意,所有你需要的是添加的“逻辑非”运算符,即

if ! expr "$string" : '-\?[0-9]\+$' >/dev/null ; then 
    #--^ right there ;-) 
     echo "String is not a valid integer." 
    else 
     echo "String is a valid integer." 
    fi 

我希望这有助于。

P.S.因为你似乎是一个新用户,如果你得到一个可以帮助你的答案,请记住将它标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。

相关问题