在 Bash 中不使用正则表达式检查 var 是否为实数(包括浮点数和负数)

问题描述 投票:0回答:1

我试图在给定 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
bash
1个回答
0
投票

您可以使用 glob 来代替:

export LC_ALL=C
case ${3#[+-]} in
'' | *[!0-9.]* | .* | *. | *.*.* )
  # handle error
esac
© www.soinside.com 2019 - 2024. All rights reserved.