如何验证十进制数?

use*_*069 3 bash shell

嗨,我正在完成一项任务并陷入这一部分,如何在shell中验证十进制数/数字?

它可以接受数字而不是十进制数字.我希望它能够接受两者.

这就是我到目前为止所拥有的

if echo $value | egrep '^[0-9]+$' >/dev/null 2>&1 ; then
echo "OK"
else
echo "There Is An Error"
echo "Please Try Again"
fi
Run Code Online (Sandbox Code Playgroud)

Gur*_*uru 5

您可以使用bash检查表达式,而不是使用grep:

#!/bin/bash

value=98.23
if [[ "$value" =~ ^[0-9]+(\.[0-9]+)?$ ]]
then
   echo good
else
   echo bad
fi
Run Code Online (Sandbox Code Playgroud)