1

我正在尝试做一个脚本,我需要检查用户输入是否有效。我就是想不通。一直在尝试不同的方法,但找不到解决方案。因此,如果那里有一个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

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

4

1 回答 1

1

感觉有点 hack,但你可以使用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
于 2012-01-02T02:22:24.470 回答