shell 限制用户输入条件

1. 必须输入纯数字, 忽略类似  ' 2'  '3 '   数字前后带空格输入
2. 数字范围必须控制在 10 ~ 90 中

 

#!/bin/bash

status='err'
start=10
end=90

while [ $status !=  'ok' ]
do

        IFS=''
        read input

        if [ -z $input ]
        then
                status='err'
                continue
        fi

        echo $input | grep '\ ' > /dev/null 2>&1

        if [ $? -eq 0 ]
        then
                status='err'
                continue
        fi

        len=`expr length $input`
        a=1
        while [ $a -le $len ]
        do
                char=`expr substr $input $a 1`
                let a++

                if [[ $char =~ [[:digit:]]  ]]
                then
                        :;
                else
                                status='err'
                                continue
                fi
        done

        if (( $input <= $start )) || (( $input >= $end ))
        then
                        status='err'
                        continue
        else
                        status='ok'
        fi

done


 

你可能感兴趣的:(shell,input)