如何检查bash中用户输入是否存在值?

时间:2014-06-26 13:40:48

标签: linux bash shell scripting suse

我想输入类似" 2.1"," 1.2"," 143.22",......这样的格式:number1。数字2

到目前为止,我已将此代码分隔为number1和number2。

echo -n "Enter value:  "
read answer

left=`echo $answer | awk -F "." '{print $1}'`      # number1
right=`echo $answer | awk -F "." '{print $2}'`     # number2

我不希望用户输入类似" 1.2.3"的内容。如何检查用户是否输入了额外值?

我在考虑这样的事情:

i=3

while true; do

    if [ -z "`echo $answer | awk -F "." '{print $i}'"]; then
        echo "Invalid input"

    i=$((i+1))
done

这会有用吗?

1 个答案:

答案 0 :(得分:2)

您可以使用如下表达式简化测试:

if [[ $answer =~ ^[0-9]+\.[0-9]+$ ]]; then ... fi

HTH,Marcello