【问题标题】:Check for valid number in busybox?检查busybox中的有效号码?
【发布时间】:2012-01-02 10:22:24
【问题描述】:

我正在尝试编写一个脚本,我需要检查用户输入是否有效。我就是想不通。一直在尝试不同的方法,但找不到解决方案。所以如果有一个busybox ash guru,我很高兴能得到所有帮助。

if ! [[ $ANS =~ ^[0-9][.0-9]*$ ]]; then
    echo "abort"
else
    echo "go on"
fi

我想看看用户是否输入了一个数字。也允许使用带小数的数字。如果不是,那么它应该中止。

同理..

if ! [[ $ANS =~ ^[0-9A-Fa-f]{6}$ ]] ; then
    echo "abort"
else
    echo "go on"
fi

我需要它来查看是否使用了十六进制。我得到的只是“未知操作数”。

【问题讨论】:

    标签: if-statement busybox


    【解决方案1】:

    感觉有点黑,但你可以使用egrep

    $ ANS=10.2
    $ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure
    success
    $ ANS=10.2.2
    $ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure
    failure
    

    【讨论】:

    • @samold 非常感谢!有效。我在 if 语句中使用了if ! echo -n $ANS | egrep -q '^[0-9][.0-9]*$'; then echo "abort"; else echo "go on";fi,因为我需要它。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2022-06-21
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多