我试图在给定 3 个参数的练习中解决 bash 中的谜语,第三个参数是可选的,检查该参数是实数,但我不能使用正则表达式、grep、awk...
如何检查是否无法使用正则表达式?我还想过使用 -gt 和 -le 但它只适用于整数。
我在这里看到了一篇与此类似的帖子,但它不适用于没有正则表达式的浮点数或负数
非常感谢。
if [ $# -ge 3 ] && [[ $3 != *[!0-9]* ]]; then
echo "Error: optional third argument is not a valid frequency"
exit 1
fi
您可以使用 glob 来代替:
export LC_ALL=C
case ${3#[+-]} in
'' | *[!0-9.]* | .* | *. | *.*.* )
# handle error
esac